mirror of
https://github.com/ajayyy/SponsorBlockServer.git
synced 2025-12-06 19:47:00 +03:00
add is VIP endpoint
This commit is contained in:
@@ -22,6 +22,7 @@ var getTopUsers = require('./routes/getTopUsers.js');
|
|||||||
var getTotalStats = require('./routes/getTotalStats.js');
|
var getTotalStats = require('./routes/getTotalStats.js');
|
||||||
var getDaysSavedFormatted = require('./routes/getDaysSavedFormatted.js');
|
var getDaysSavedFormatted = require('./routes/getDaysSavedFormatted.js');
|
||||||
var postNoSegments = require('./routes/postNoSegments.js');
|
var postNoSegments = require('./routes/postNoSegments.js');
|
||||||
|
var getIsUserVIP = require('./routes/getIsUserVIP.js');
|
||||||
|
|
||||||
// Old Routes
|
// Old Routes
|
||||||
var oldGetVideoSponsorTimes = require('./routes/oldGetVideoSponsorTimes.js');
|
var oldGetVideoSponsorTimes = require('./routes/oldGetVideoSponsorTimes.js');
|
||||||
@@ -90,6 +91,10 @@ app.get('/api/getDaysSavedFormatted', getDaysSavedFormatted);
|
|||||||
//submit video containing no segments
|
//submit video containing no segments
|
||||||
app.post('/api/postNoSegments', postNoSegments);
|
app.post('/api/postNoSegments', postNoSegments);
|
||||||
|
|
||||||
|
//get if user is a vip
|
||||||
|
app.get('/api/getIsUserVIP', getIsUserVIP);
|
||||||
|
|
||||||
|
|
||||||
app.get('/database.db', function (req, res) {
|
app.get('/database.db', function (req, res) {
|
||||||
res.sendFile("./databases/sponsorTimes.db", { root: "./" });
|
res.sendFile("./databases/sponsorTimes.db", { root: "./" });
|
||||||
});
|
});
|
||||||
|
|||||||
31
src/routes/getIsUserVIP.js
Normal file
31
src/routes/getIsUserVIP.js
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
var db = require('../databases/databases.js').db;
|
||||||
|
|
||||||
|
var getHash = require('../utils/getHash.js');
|
||||||
|
const logger = require('../utils/logger.js');
|
||||||
|
const isUserVIP = require('../utils/isUserVIP.js');
|
||||||
|
|
||||||
|
module.exports = function getUsername (req, res) {
|
||||||
|
let userID = req.query.userID;
|
||||||
|
|
||||||
|
if (userID == undefined) {
|
||||||
|
//invalid request
|
||||||
|
res.sendStatus(400);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
//hash the userID
|
||||||
|
userID = getHash(userID);
|
||||||
|
|
||||||
|
try {
|
||||||
|
let vipState = isUserVIP(userID);
|
||||||
|
res.status(200).json({
|
||||||
|
hashedUserID: userID,
|
||||||
|
vip: vipState
|
||||||
|
});
|
||||||
|
} catch (err) {
|
||||||
|
logger.error(err);
|
||||||
|
res.sendStatus(500);
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
57
test/cases/getIsUserVIP.js
Normal file
57
test/cases/getIsUserVIP.js
Normal file
@@ -0,0 +1,57 @@
|
|||||||
|
var request = require('request');
|
||||||
|
var utils = require('../utils.js');
|
||||||
|
var db = require('../../src/databases/databases.js').db;
|
||||||
|
var getHash = require('../../src/utils/getHash.js');
|
||||||
|
|
||||||
|
describe('getSavedTimeForUser', () => {
|
||||||
|
before(() => {
|
||||||
|
db.exec("INSERT INTO vipUsers (userID) VALUES ('" + getHash("supertestman") + "')");
|
||||||
|
});
|
||||||
|
|
||||||
|
it('Should be able to get a 200', (done) => {
|
||||||
|
request.get(utils.getbaseURL()
|
||||||
|
+ "/api/getIsUserVIP?userID=supertestman", null,
|
||||||
|
(err, res, body) => {
|
||||||
|
if (err) done("couldn't call endpoint");
|
||||||
|
else if (res.statusCode !== 200) done("non 200: " + res.statusCode);
|
||||||
|
else done(); // pass
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
it('Should get a 400 if no userID', (done) => {
|
||||||
|
request.get(utils.getbaseURL()
|
||||||
|
+ "/api/getIsUserVIP", null,
|
||||||
|
(err, res, body) => {
|
||||||
|
if (err) done("couldn't call endpoint");
|
||||||
|
else if (res.statusCode !== 400) done("non 400: " + res.statusCode);
|
||||||
|
else done(); // pass
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
it('Should say a VIP is a VIP', (done) => {
|
||||||
|
request.get(utils.getbaseURL()
|
||||||
|
+ "/api/getIsUserVIP?userID=supertestman", null,
|
||||||
|
(err, res, body) => {
|
||||||
|
if (err) done("couldn't call endpoint");
|
||||||
|
else if (res.statusCode !== 200) done("non 200: " + res.statusCode);
|
||||||
|
else {
|
||||||
|
if (JSON.parse(body).vip === true) done(); // pass
|
||||||
|
else done("Result was non-vip when should have been vip");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
it('Should say a normal user is not a VIP', (done) => {
|
||||||
|
request.get(utils.getbaseURL()
|
||||||
|
+ "/api/getIsUserVIP?userID=regulartestman", null,
|
||||||
|
(err, res, body) => {
|
||||||
|
if (err) done("couldn't call endpoint");
|
||||||
|
else if (res.statusCode !== 200) done("non 200: " + res.statusCode);
|
||||||
|
else {
|
||||||
|
if (JSON.parse(body).vip === false) done(); // pass
|
||||||
|
else done("Result was vip when should have been non-vip");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
Reference in New Issue
Block a user