From fae89c7e113bc81aa9ac85cf34f749ae7ec6607d Mon Sep 17 00:00:00 2001 From: Kalle <38327916+Sendouc@users.noreply.github.com> Date: Sun, 14 Apr 2024 12:50:30 +0300 Subject: [PATCH] Limit when weapon shown on leaderboard --- .../queries/seasonPopularUsersWeapon.server.ts | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/app/features/leaderboards/queries/seasonPopularUsersWeapon.server.ts b/app/features/leaderboards/queries/seasonPopularUsersWeapon.server.ts index af3276647..93010affb 100644 --- a/app/features/leaderboards/queries/seasonPopularUsersWeapon.server.ts +++ b/app/features/leaderboards/queries/seasonPopularUsersWeapon.server.ts @@ -3,6 +3,7 @@ import type { User } from "~/db/types"; import { seasonObject } from "~/features/mmr/season"; import type { MainWeaponId } from "~/modules/in-game-lists"; import { dateToDatabaseTimestamp } from "~/utils/dates"; +import { MATCHES_COUNT_NEEDED_FOR_LEADERBOARD } from "../leaderboards-constants"; const stm = sql.prepare(/* sql */ ` with "q1" as ( @@ -19,7 +20,8 @@ const stm = sql.prepare(/* sql */ ` ) select "q1"."userId", - "q1"."weaponSplId" + "q1"."weaponSplId", + "q1"."count" from "q1" group by "q1"."userId" `); @@ -36,9 +38,14 @@ export function seasonPopularUsersWeapon( starts: dateToDatabaseTimestamp(starts), ends: dateToDatabaseTimestamp(ends), }) as Array<{ + count: number; userId: User["id"]; weaponSplId: MainWeaponId; }>; - return Object.fromEntries(rows.map((r) => [r.userId, r.weaponSplId])); + return Object.fromEntries( + rows + .filter((r) => r.count > MATCHES_COUNT_NEEDED_FOR_LEADERBOARD) + .map((r) => [r.userId, r.weaponSplId]), + ); }