diff --git a/src/routes/getUserStats.ts b/src/routes/getUserStats.ts index 8609c69..c6b6420 100644 --- a/src/routes/getUserStats.ts +++ b/src/routes/getUserStats.ts @@ -7,9 +7,9 @@ import { Logger } from "../utils/logger"; type nestedObj = Record>; const maxRewardTimePerSegmentInSeconds = config.maxRewardTimePerSegmentInSeconds ?? 86400; -async function dbGetUserSummary(userID: HashedUserID, categoryStats: boolean, typeStats: boolean) { +async function dbGetUserSummary(userID: HashedUserID, fetchCategoryStats: boolean, fetchActionTypeStats: boolean) { let additionalQuery = ""; - if (categoryStats) { + if (fetchCategoryStats) { additionalQuery += ` SUM(CASE WHEN "category" = 'sponsor' THEN 1 ELSE 0 END) as "categorySumSponsor", SUM(CASE WHEN "category" = 'intro' THEN 1 ELSE 0 END) as "categorySumIntro", @@ -20,7 +20,7 @@ async function dbGetUserSummary(userID: HashedUserID, categoryStats: boolean, ty SUM(CASE WHEN "category" = 'preview' THEN 1 ELSE 0 END) as "categorySumPreview", SUM(CASE WHEN "category" = 'poi_highlight' THEN 1 ELSE 0 END) as "categorySumHighlight",`; } - if (typeStats) { + if (fetchActionTypeStats) { additionalQuery += ` SUM(CASE WHEN "actionType" = 'skip' THEN 1 ELSE 0 END) as "typeSumSkip", SUM(CASE WHEN "actionType" = 'mute' THEN 1 ELSE 0 END) as "typeSumMute",`; @@ -42,7 +42,7 @@ async function dbGetUserSummary(userID: HashedUserID, categoryStats: boolean, ty minutesSaved: proxy.minutesSaved, segmentCount: proxy.segmentCount, }; - if (categoryStats) { + if (fetchCategoryStats) { result.categoryCount = { sponsor: proxy.categorySumSponsor, intro: proxy.categorySumIntro, @@ -54,7 +54,7 @@ async function dbGetUserSummary(userID: HashedUserID, categoryStats: boolean, ty poi_highlight: proxy.categorySumHighlight, }; } - if (typeStats) { + if (fetchActionTypeStats) { result.actionTypeCount = { skip: proxy.typeSumSkip, mute: proxy.typeSumMute, @@ -79,14 +79,14 @@ async function dbGetUsername(userID: HashedUserID) { export async function getUserStats(req: Request, res: Response): Promise { const userID = req.query.userID as UserID; const hashedUserID: HashedUserID = userID ? getHash(userID) : req.query.publicUserID as HashedUserID; - const categoryStats = req.query.categoryStats == "true"; - const typeStats = req.query.typeStats == "true"; + const fetchCategoryStats = req.query.fetchCategoryStats == "true"; + const fetchActionTypeStats = req.query.fetchActionTypeStats == "true"; if (hashedUserID == undefined) { //invalid request return res.status(400).send("Invalid userID or publicUserID parameter"); } - const segmentSummary = await dbGetUserSummary(hashedUserID, categoryStats, typeStats); + const segmentSummary = await dbGetUserSummary(hashedUserID, fetchCategoryStats, fetchActionTypeStats); const responseObj = { userID: hashedUserID, userName: await dbGetUsername(hashedUserID), diff --git a/test/cases/getUserStats.ts b/test/cases/getUserStats.ts index 674e85f..9b7be30 100644 --- a/test/cases/getUserStats.ts +++ b/test/cases/getUserStats.ts @@ -32,7 +32,7 @@ describe("getUserStats", () => { }); it("Should be able to get all user info", (done: Done) => { - fetch(`${getbaseURL()}/api/userStats?userID=getuserstats_user_01&categoryStats=true&typeStats=true`) + fetch(`${getbaseURL()}/api/userStats?userID=getuserstats_user_01&fetchCategoryStats=true&fetchActionTypeStats=true`) .then(async res => { assert.strictEqual(res.status, 200); const expected = { @@ -109,7 +109,7 @@ describe("getUserStats", () => { }); it("Should get parts of extra stats if not requested", (done: Done) => { - fetch(`${getbaseURL()}/api/userStats?userID=getuserstats_user_01&typeStats=true`) + fetch(`${getbaseURL()}/api/userStats?userID=getuserstats_user_01&fetchActionTypeStats=true`) .then(async res => { assert.strictEqual(res.status, 200); const data = await res.json();