From 4cea3c2a3b07c01c2b36dd91cc029e698cbff213 Mon Sep 17 00:00:00 2001 From: Joe Dowd Date: Thu, 1 Oct 2020 00:51:58 +0100 Subject: [PATCH 1/4] Added [] return rather than 404 for no segments with matching hash --- src/routes/getSkipSegmentsByHash.js | 4 ++-- test/cases/getSegmentsByHash.js | 17 ++++++++++++++++- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/src/routes/getSkipSegmentsByHash.js b/src/routes/getSkipSegmentsByHash.js index 23a9167..fe25cc4 100644 --- a/src/routes/getSkipSegmentsByHash.js +++ b/src/routes/getSkipSegmentsByHash.js @@ -20,10 +20,10 @@ module.exports = async function (req, res) { // Get all video id's that match hash prefix const videoIds = db.prepare('all', 'SELECT DISTINCT videoId, hashedVideoID from sponsorTimes WHERE hashedVideoID LIKE ?', [hashPrefix+'%']); - if (videoIds.length === 0) { + /*if (videoIds.length === 0) { res.sendStatus(404); return; - } + }*/ let segments = videoIds.map((video) => { return { diff --git a/test/cases/getSegmentsByHash.js b/test/cases/getSegmentsByHash.js index 2704b61..c063345 100644 --- a/test/cases/getSegmentsByHash.js +++ b/test/cases/getSegmentsByHash.js @@ -40,7 +40,7 @@ describe('getSegmentsByHash', () => { }); }); - it('Should be able to get a 404 if no videos', (done) => { + /*it('Should be able to get a 404 if no videos', (done) => { request.get(utils.getbaseURL() + '/api/skipSegments/11111?categories=["shilling"]', null, (err, res, body) => { @@ -50,8 +50,23 @@ describe('getSegmentsByHash', () => { done(); // pass } }); + });*/ + + it('Should be able to get an emptry array if no videos', (done) => { + request.get(utils.getbaseURL() + + '/api/skipSegments/11111?categories=["shilling"]', null, + (err, res, body) => { + if (err) done("Couldn't call endpoint"); + else if (res.statusCode !== 200) done("non 200 status code, was " + res.statusCode); + else { + if (JSON.parse(body).length === 0) done(); // pass + else done("non empty array returned"); + + } + }); }); + it('Should return 400 prefix too short', (done) => { request.get(utils.getbaseURL() + '/api/skipSegments/11?categories=["shilling"]', null, From fe91d13ff3f7ca5f771f323f2ab192f73f08905e Mon Sep 17 00:00:00 2001 From: Joe Dowd Date: Thu, 1 Oct 2020 00:53:13 +0100 Subject: [PATCH 2/4] removed old functionality comments --- src/routes/getSkipSegmentsByHash.js | 4 ---- test/cases/getSegmentsByHash.js | 13 ------------- 2 files changed, 17 deletions(-) diff --git a/src/routes/getSkipSegmentsByHash.js b/src/routes/getSkipSegmentsByHash.js index fe25cc4..19dab5a 100644 --- a/src/routes/getSkipSegmentsByHash.js +++ b/src/routes/getSkipSegmentsByHash.js @@ -20,10 +20,6 @@ module.exports = async function (req, res) { // Get all video id's that match hash prefix const videoIds = db.prepare('all', 'SELECT DISTINCT videoId, hashedVideoID from sponsorTimes WHERE hashedVideoID LIKE ?', [hashPrefix+'%']); - /*if (videoIds.length === 0) { - res.sendStatus(404); - return; - }*/ let segments = videoIds.map((video) => { return { diff --git a/test/cases/getSegmentsByHash.js b/test/cases/getSegmentsByHash.js index c063345..fab4d77 100644 --- a/test/cases/getSegmentsByHash.js +++ b/test/cases/getSegmentsByHash.js @@ -40,18 +40,6 @@ describe('getSegmentsByHash', () => { }); }); - /*it('Should be able to get a 404 if no videos', (done) => { - request.get(utils.getbaseURL() - + '/api/skipSegments/11111?categories=["shilling"]', null, - (err, res, body) => { - if (err) done("Couldn't call endpoint"); - else if (res.statusCode !== 404) done("non 404 status code, was " + res.statusCode); - else { - done(); // pass - } - }); - });*/ - it('Should be able to get an emptry array if no videos', (done) => { request.get(utils.getbaseURL() + '/api/skipSegments/11111?categories=["shilling"]', null, @@ -66,7 +54,6 @@ describe('getSegmentsByHash', () => { }); }); - it('Should return 400 prefix too short', (done) => { request.get(utils.getbaseURL() + '/api/skipSegments/11?categories=["shilling"]', null, From 62916f6a7ec63c74823c68a41e67bf0e46fa96a9 Mon Sep 17 00:00:00 2001 From: Joe Dowd Date: Tue, 6 Oct 2020 23:22:48 +0100 Subject: [PATCH 3/4] reverted to 404 sith empty array --- src/routes/getSkipSegmentsByHash.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/routes/getSkipSegmentsByHash.js b/src/routes/getSkipSegmentsByHash.js index 19dab5a..28131b6 100644 --- a/src/routes/getSkipSegmentsByHash.js +++ b/src/routes/getSkipSegmentsByHash.js @@ -29,5 +29,5 @@ module.exports = async function (req, res) { }; }); - res.status(200).json(segments); + res.status((segments.length === 0) ? 404 : 200).json(segments); } \ No newline at end of file From b244b1e1addf8ece82158957a48d9697b816ad10 Mon Sep 17 00:00:00 2001 From: Joe Dowd Date: Tue, 6 Oct 2020 23:25:16 +0100 Subject: [PATCH 4/4] reverted test to 404 --- test/cases/getSegmentsByHash.js | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/test/cases/getSegmentsByHash.js b/test/cases/getSegmentsByHash.js index fab4d77..ed4f819 100644 --- a/test/cases/getSegmentsByHash.js +++ b/test/cases/getSegmentsByHash.js @@ -40,16 +40,15 @@ describe('getSegmentsByHash', () => { }); }); - it('Should be able to get an emptry array if no videos', (done) => { + it('Should be able to get an empty array if no videos', (done) => { request.get(utils.getbaseURL() + '/api/skipSegments/11111?categories=["shilling"]', null, (err, res, body) => { if (err) done("Couldn't call endpoint"); - else if (res.statusCode !== 200) done("non 200 status code, was " + res.statusCode); + else if (res.statusCode !== 404) done("non 404 status code, was " + res.statusCode); else { - if (JSON.parse(body).length === 0) done(); // pass + if (JSON.parse(body).length === 0 && body === '[]') done(); // pass else done("non empty array returned"); - } }); });