Allow streamer to set vote point values

This commit is contained in:
Dessa Simpson 2021-02-22 22:53:03 -07:00
parent fcd8f2b197
commit 60defb7ea6
6 changed files with 133 additions and 38 deletions

View file

@ -285,6 +285,44 @@ app.post("/api/updateColors", async (request, response) => {
response.send('Successfully updated colors');
});
app.post("/api/updateVotePoints", async (request, response) => {
if (request.session) await validateApiToken(request.session);
if (!request.session || !request.session.user) {
response.status(401);
response.send("Session expired; please log in again");
return;
}
var streamerid = await db.query(queries.getStreamerId).then((result: pg.QueryResult) => result.rows[0]['userid']);
if (request.session.user.id != streamerid) {
response.status(401);
response.send("You are not the streamer");
return;
}
if (!request.body.user) {
response.status(400);
response.send("Missing user");
return;
}
if (!request.body.follower) {
response.status(400);
response.send("Missing follower");
return;
}
if (!request.body.subscriber) {
response.status(400);
response.send("Missing subscriber");
return;
}
var user = request.body.user as number;
var follower = request.body.follower as number;
var subscriber = request.body.subscriber as number;
response.type('text/plain');
await db.query(Object.assign(queries.updateVotePoints,{ values: [user,follower,subscriber] }))
.catch((e: any) => errorHandler(request,response,e));
response.status(200);
response.send('Successfully updated page title');
});
app.post("/api/deleteRequest", async (request, response) => {
if (request.session) await validateApiToken(request.session);
if (!request.session || !request.session.user) {
@ -439,10 +477,9 @@ app.get("/", async (request, response) => {
loggedIn: false,
clientId: config.twitchClientId,
urlPrefix: config.urlPrefix,
pageTitle: streamerConfig.title,
streamerName: streamerInfo['displayname'],
streamerProfilePicture: streamerInfo['imageurl'],
colors: streamerConfig.colors
config: streamerConfig,
});
} else {
var validStates = JSON.stringify((await db.query(queries.getValidStates).then((result: pg.QueryResult) => result.rows)).map((row: any) => row.state));
@ -452,10 +489,9 @@ app.get("/", async (request, response) => {
userProfilePicture: request.session.user.profile_image_url,
validStates: validStates,
isStreamer: streamerInfo['userid'] == request.session.user.id,
pageTitle: streamerConfig.title,
streamerName: streamerInfo['displayname'],
streamerProfilePicture: streamerInfo['imageurl'],
colors: streamerConfig.colors
config: streamerConfig,
});
}
});

View file

@ -47,6 +47,11 @@ export const updateColors = {
text: "UPDATE config SET colors = $1"
}
export const updateVotePoints = {
name: "updateVotePoints",
text: "CALL update_vote_points($1,$2,$3)"
}
// Request-related queries
export const getRequests = {
name: "getRequests",