rhythia-api 160.0.0 → 162.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -9,6 +9,7 @@ export const Schema = {
9
9
  input: z.strictObject({
10
10
  session: z.string(),
11
11
  page: z.number().default(1),
12
+ flag: z.string().optional(),
12
13
  }),
13
14
  output: z.object({
14
15
  error: z.string().optional(),
@@ -43,13 +44,13 @@ export async function POST(request: Request): Promise<NextResponse> {
43
44
  export async function handler(
44
45
  data: (typeof Schema)["input"]["_type"]
45
46
  ): Promise<NextResponse<(typeof Schema)["output"]["_type"]>> {
46
- const result = await getLeaderboard(data.page, data.session);
47
+ const result = await getLeaderboard(data.page, data.session, data.flag);
47
48
  return NextResponse.json(result);
48
49
  }
49
50
 
50
51
  const VIEW_PER_PAGE = 50;
51
52
 
52
- export async function getLeaderboard(page = 1, session: string) {
53
+ export async function getLeaderboard(page = 1, session: string, flag?: string) {
53
54
  const getUserData = (await getUserBySession(session)) as User;
54
55
 
55
56
  let leaderPosition = 0;
@@ -79,13 +80,16 @@ export async function getLeaderboard(page = 1, session: string) {
79
80
  .select("ban", { count: "exact", head: true })
80
81
  .neq("ban", "excluded");
81
82
 
82
- let { data: queryData, error } = await supabase
83
- .from("profiles")
84
- .select("*")
85
- .neq("ban", "excluded")
86
- .order("skill_points", { ascending: false })
87
- .range(startPage, endPage);
83
+ let query = supabase.from("profiles").select("*").neq("ban", "excluded");
84
+
85
+ if (flag) {
86
+ query.eq("flag", flag);
87
+ }
88
+
89
+ query.order("skill_points", { ascending: false });
90
+ query.range(startPage, endPage);
88
91
 
92
+ let { data: queryData, error } = await query;
89
93
  return {
90
94
  total: countQuery.count || 0,
91
95
  viewPerPage: VIEW_PER_PAGE,
@@ -7,6 +7,7 @@ export const Schema = {
7
7
  input: z.strictObject({
8
8
  session: z.string(),
9
9
  id: z.number(),
10
+ limit: z.number().default(10),
10
11
  }),
11
12
  output: z.object({
12
13
  error: z.string().optional(),
@@ -65,6 +66,9 @@ export async function handler(
65
66
  data: (typeof Schema)["input"]["_type"],
66
67
  req: Request
67
68
  ): Promise<NextResponse<(typeof Schema)["output"]["_type"]>> {
69
+ if (data.limit > 100) {
70
+ return NextResponse.json({ error: "Limit breached" });
71
+ }
68
72
  let { data: scores1, error: errorlast } = await supabase
69
73
  .from("scores")
70
74
  .select(
@@ -80,7 +84,7 @@ export async function handler(
80
84
  .eq("userId", data.id)
81
85
  .eq("passed", true)
82
86
  .order("created_at", { ascending: false })
83
- .limit(10);
87
+ .limit(data.limit);
84
88
 
85
89
  let { data: scores2, error: errorsp } = await supabase
86
90
  .from("scores")
@@ -116,7 +120,7 @@ export async function handler(
116
120
  const values = Object.values(hashMap);
117
121
  let vals = values
118
122
  .sort((a, b) => b.awarded_sp - a.awarded_sp)
119
- .slice(0, 10)
123
+ .slice(0, data.limit)
120
124
  .map((e) => e.score);
121
125
 
122
126
  return NextResponse.json({
package/index.ts CHANGED
@@ -330,6 +330,7 @@ export const Schema = {
330
330
  input: z.strictObject({
331
331
  session: z.string(),
332
332
  page: z.number().default(1),
333
+ flag: z.string().optional(),
333
334
  }),
334
335
  output: z.object({
335
336
  error: z.string().optional(),
@@ -538,6 +539,7 @@ export const Schema = {
538
539
  input: z.strictObject({
539
540
  session: z.string(),
540
541
  id: z.number(),
542
+ limit: z.number().default(10),
541
543
  }),
542
544
  output: z.object({
543
545
  error: z.string().optional(),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rhythia-api",
3
- "version": "160.0.0",
3
+ "version": "162.0.0",
4
4
  "main": "index.ts",
5
5
  "scripts": {
6
6
  "update": "bun ./scripts/update.ts",