From 9b812721ad8c1c4101638581becce90a772baef6 Mon Sep 17 00:00:00 2001 From: Ajay Ramachandran Date: Thu, 11 Jul 2019 19:45:55 -0400 Subject: [PATCH] Made it so that each user can only submit 4 sponsorship segments per video --- index.js | 30 +++++++++++++++++++----------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/index.js b/index.js index 3dcbf26..5c3220d 100644 --- a/index.js +++ b/index.js @@ -83,19 +83,27 @@ app.get('/api/postVideoSponsorTimes', function (req, res) { //get current time let timeSubmitted = Date.now(); - //check if this info has already been submitted first - db.prepare("SELECT UUID From sponsorTimes WHERE startTime = ? and endTime = ? and videoID = ?").get([startTime, endTime, videoID], function(err, row) { - if (err) console.log(err); - - if (row == null) { - //not a duplicate, execute query - db.prepare("INSERT INTO sponsorTimes VALUES(?, ?, ?, ?, ?, ?, ?)").run(videoID, startTime, endTime, UUID, userID, hashedIP, timeSubmitted); - - res.sendStatus(200); + //check to see if the user has already submitted sponsors for this video + db.prepare("SELECT UUID FROM sponsorTimes WHERE userID = ? and videoID = ?").all([userID, videoID], function(err, rows) { + if (rows.length >= 4) { + //too many sponsors for the same video from the same user + res.sendStatus(429); } else { - res.sendStatus(409); + //check if this info has already been submitted first + db.prepare("SELECT UUID FROM sponsorTimes WHERE startTime = ? and endTime = ? and videoID = ?").get([startTime, endTime, videoID], function(err, row) { + if (err) console.log(err); + + if (row == null) { + //not a duplicate, execute query + db.prepare("INSERT INTO sponsorTimes VALUES(?, ?, ?, ?, ?, ?, ?)").run(videoID, startTime, endTime, UUID, userID, hashedIP, timeSubmitted); + + res.sendStatus(200); + } else { + res.sendStatus(409); + } + }); } - }) + }); }); app.get('/database.db', function (req, res) {