From 268008945c0cd645369676db0c805b1c3839fd01 Mon Sep 17 00:00:00 2001 From: Michael C Date: Fri, 27 Aug 2021 16:41:26 -0400 Subject: [PATCH 1/4] disallow POI before 1 second --- src/routes/postSkipSegments.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/routes/postSkipSegments.ts b/src/routes/postSkipSegments.ts index 492e5dc..4b99d8b 100644 --- a/src/routes/postSkipSegments.ts +++ b/src/routes/postSkipSegments.ts @@ -381,6 +381,11 @@ async function checkEachSegmentValid(userID: string, videoID: VideoID return { pass: false, errorMessage: "One of your segments times are invalid (too short, startTime before endTime, etc.)", errorCode: 400}; } + // Check for POI segments before 1 second + if (segments[i].category === CategoryActionType.POI && startTime < 1) { + return { pass: false, errorMessage: "POI must be after 1 second", errorCode: 400}; + } + if (!isVIP && segments[i].category === "sponsor" && Math.abs(startTime - endTime) < 1) { // Too short return { pass: false, errorMessage: "Sponsors must be longer than 1 second long", errorCode: 400}; From c448bb3d9a7e6ce8d0d06e944d76439d372d6c73 Mon Sep 17 00:00:00 2001 From: Michael C Date: Fri, 27 Aug 2021 16:44:29 -0400 Subject: [PATCH 2/4] add test case --- test/cases/postSkipSegments.ts | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/test/cases/postSkipSegments.ts b/test/cases/postSkipSegments.ts index b6643c2..2ae86ab 100644 --- a/test/cases/postSkipSegments.ts +++ b/test/cases/postSkipSegments.ts @@ -987,4 +987,16 @@ describe("postSkipSegments", () => { }) .catch(err => done(err)); }); + + it("Should be rejected if a POI is at less than 1 second", (done: Done) => { + fetch(`${getbaseURL() + }/api/skipSegments?videoID=qqwerty&startTime=0.5&endTime=0.5&userID=testtesttesttesttesttesttesttesttesting`, { + method: "POST", + }) + .then(res => { + assert.strictEqual(res.status, 400); + done(); + }) + .catch(err => done(err)); + }); }); From d494c2305941e79b54f5ea7fe3cb0a32ba304416 Mon Sep 17 00:00:00 2001 From: "Michael M. Chang" Date: Sat, 28 Aug 2021 01:36:41 -0400 Subject: [PATCH 3/4] Update src/routes/postSkipSegments.ts Co-authored-by: Ajay Ramachandran --- src/routes/postSkipSegments.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/routes/postSkipSegments.ts b/src/routes/postSkipSegments.ts index 4b99d8b..a646fd0 100644 --- a/src/routes/postSkipSegments.ts +++ b/src/routes/postSkipSegments.ts @@ -382,7 +382,7 @@ async function checkEachSegmentValid(userID: string, videoID: VideoID } // Check for POI segments before 1 second - if (segments[i].category === CategoryActionType.POI && startTime < 1) { + if (getCategoryActionType(segments[i].category) === CategoryActionType.POI && startTime < 1) { return { pass: false, errorMessage: "POI must be after 1 second", errorCode: 400}; } From b3320ab0fd7f4bf48cb745f1c353fc9c4e326b08 Mon Sep 17 00:00:00 2001 From: Michael C Date: Sat, 28 Aug 2021 01:38:00 -0400 Subject: [PATCH 4/4] submit test as poi_highlight --- test/cases/postSkipSegments.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/cases/postSkipSegments.ts b/test/cases/postSkipSegments.ts index 2ae86ab..3751521 100644 --- a/test/cases/postSkipSegments.ts +++ b/test/cases/postSkipSegments.ts @@ -990,7 +990,7 @@ describe("postSkipSegments", () => { it("Should be rejected if a POI is at less than 1 second", (done: Done) => { fetch(`${getbaseURL() - }/api/skipSegments?videoID=qqwerty&startTime=0.5&endTime=0.5&userID=testtesttesttesttesttesttesttesttesting`, { + }/api/skipSegments?videoID=qqwerty&startTime=0.5&endTime=0.5&category=poi_highlight&userID=testtesttesttesttesttesttesttesttesting`, { method: "POST", }) .then(res => {