added warning system

Co-authored-by: Ajay Ramachandran <dev@ajay.app>
This commit is contained in:
Joe Dowd
2020-09-15 23:56:10 +01:00
committed by GitHub
parent b52a862f4f
commit 075cb9d5f2
8 changed files with 187 additions and 9 deletions

View File

@@ -48,6 +48,16 @@ function dbGetViewsForUser (userID) {
}
}
function dbGetWarningsForUser (userID) {
try {
let rows = db.prepare('all', "SELECT * FROM warnings WHERE userID = ?", [userID]);
return rows.length;
} catch (err) {
logger.error('Couldn\'t get warnings for user ' + userID + '. returning 0') ;
return 0;
}
}
module.exports = function getUserInfo (req, res) {
let userID = req.query.userID;
@@ -67,5 +77,6 @@ module.exports = function getUserInfo (req, res) {
minutesSaved: segmentsSummary.minutesSaved,
segmentCount: segmentsSummary.segmentCount,
viewCount: dbGetViewsForUser(userID),
warnings: dbGetWarningsForUser(userID)
});
}

24
src/routes/postWarning.js Normal file
View File

@@ -0,0 +1,24 @@
const db = require('../databases/databases.js').db;
const getHash = require('../utils/getHash.js');
const isUserVIP = require('../utils/isUserVIP.js');
const logger = require('../utils/logger.js');
module.exports = (req, res) => {
// Collect user input data
let issuerUserID = getHash(req.body.issuerUserID);
let userID = getHash(req.body.userID);
let issueTime = new Date().getTime();
// Ensure user is a VIP
if (!isUserVIP(issuerUserID)) {
logger.debug("Permission violation: User " + issuerUserID + " attempted to warn user " + userID + "."); // maybe warn?
res.status(403).json({"message": "Not a VIP"});
return;
}
db.prepare('run', 'INSERT INTO warnings (userID, issueTime, issuerUserID) VALUES (?, ?, ?)', [userID, issueTime, issuerUserID]);
res.status(200).json({
message: "Warning issued to user '" + userID + "'."
});
};

View File

@@ -270,6 +270,9 @@ async function voteOnSponsorTime(req, res) {
} else if (votesRow.type === 2) {
//extra downvote
oldIncrementAmount = -4;
} else if (votesRow.type === 20) {
//undo/cancel vote
oldIncrementAmount = 0;
} else if (votesRow.type < 0) {
//vip downvote
oldIncrementAmount = votesRow.type;