rhythia-api 116.0.0 → 117.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.
- package/api/getBeatmaps.ts +32 -26
- package/api/getProfile.ts +1 -0
- package/package.json +1 -1
- package/types/database.ts +13 -12
package/api/getBeatmaps.ts
CHANGED
|
@@ -66,7 +66,34 @@ export async function getBeatmaps(page = 1, session: string, filter: string) {
|
|
|
66
66
|
.from("beatmapPages")
|
|
67
67
|
.select("*", { count: "exact", head: true });
|
|
68
68
|
|
|
69
|
-
let queryData;
|
|
69
|
+
let queryData = await getQuery(startPage, endPage, filter);
|
|
70
|
+
|
|
71
|
+
return {
|
|
72
|
+
total: countQuery.count || 0,
|
|
73
|
+
viewPerPage: VIEW_PER_PAGE,
|
|
74
|
+
currentPage: page,
|
|
75
|
+
beatmaps: queryData
|
|
76
|
+
?.filter((e) => e.beatmaps)
|
|
77
|
+
.map((beatmapPage) => ({
|
|
78
|
+
id: beatmapPage.id,
|
|
79
|
+
playcount: beatmapPage.beatmaps?.playcount,
|
|
80
|
+
created_at: beatmapPage.created_at,
|
|
81
|
+
difficulty: beatmapPage.beatmaps?.difficulty,
|
|
82
|
+
noteCount: beatmapPage.beatmaps?.noteCount,
|
|
83
|
+
length: beatmapPage.beatmaps?.length,
|
|
84
|
+
title: beatmapPage.beatmaps?.title,
|
|
85
|
+
ranked: beatmapPage.beatmaps?.ranked,
|
|
86
|
+
beatmapFile: beatmapPage.beatmaps?.beatmapFile,
|
|
87
|
+
image: beatmapPage.beatmaps?.image,
|
|
88
|
+
starRating: beatmapPage.beatmaps?.starRating,
|
|
89
|
+
owner: beatmapPage.owner,
|
|
90
|
+
ownerUsername: beatmapPage.profiles?.username,
|
|
91
|
+
ownerAvatar: beatmapPage.profiles?.avatar_url,
|
|
92
|
+
})),
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
async function getQuery(startPage: number, endPage: number, filter: string) {
|
|
70
97
|
if (filter.length) {
|
|
71
98
|
let { data: data, error } = await supabase
|
|
72
99
|
.from("beatmapPages")
|
|
@@ -91,9 +118,10 @@ export async function getBeatmaps(page = 1, session: string, filter: string) {
|
|
|
91
118
|
)`
|
|
92
119
|
)
|
|
93
120
|
.order("created_at", { ascending: false })
|
|
94
|
-
.
|
|
121
|
+
.ilike("beatmaps.title", `%${filter}%`)
|
|
95
122
|
.range(startPage, endPage);
|
|
96
|
-
|
|
123
|
+
|
|
124
|
+
return data;
|
|
97
125
|
} else {
|
|
98
126
|
let { data: data, error } = await supabase
|
|
99
127
|
.from("beatmapPages")
|
|
@@ -119,28 +147,6 @@ export async function getBeatmaps(page = 1, session: string, filter: string) {
|
|
|
119
147
|
)
|
|
120
148
|
.order("created_at", { ascending: false })
|
|
121
149
|
.range(startPage, endPage);
|
|
122
|
-
|
|
150
|
+
return data;
|
|
123
151
|
}
|
|
124
|
-
|
|
125
|
-
return {
|
|
126
|
-
total: countQuery.count || 0,
|
|
127
|
-
viewPerPage: VIEW_PER_PAGE,
|
|
128
|
-
currentPage: page,
|
|
129
|
-
beatmaps: queryData?.map((beatmapPage) => ({
|
|
130
|
-
id: beatmapPage.id,
|
|
131
|
-
playcount: beatmapPage.beatmaps?.playcount,
|
|
132
|
-
created_at: beatmapPage.created_at,
|
|
133
|
-
difficulty: beatmapPage.beatmaps?.difficulty,
|
|
134
|
-
noteCount: beatmapPage.beatmaps?.noteCount,
|
|
135
|
-
length: beatmapPage.beatmaps?.length,
|
|
136
|
-
title: beatmapPage.beatmaps?.title,
|
|
137
|
-
ranked: beatmapPage.beatmaps?.ranked,
|
|
138
|
-
beatmapFile: beatmapPage.beatmaps?.beatmapFile,
|
|
139
|
-
image: beatmapPage.beatmaps?.image,
|
|
140
|
-
starRating: beatmapPage.beatmaps?.starRating,
|
|
141
|
-
owner: beatmapPage.owner,
|
|
142
|
-
ownerUsername: beatmapPage.profiles?.username,
|
|
143
|
-
ownerAvatar: beatmapPage.profiles?.avatar_url,
|
|
144
|
-
})),
|
|
145
|
-
};
|
|
146
152
|
}
|
package/api/getProfile.ts
CHANGED
package/package.json
CHANGED
package/types/database.ts
CHANGED
|
@@ -12,21 +12,30 @@ export type Database = {
|
|
|
12
12
|
beatmapPages: {
|
|
13
13
|
Row: {
|
|
14
14
|
created_at: string
|
|
15
|
+
genre: string | null
|
|
15
16
|
id: number
|
|
16
17
|
latestBeatmapHash: string | null
|
|
17
18
|
owner: number | null
|
|
19
|
+
status: string | null
|
|
20
|
+
title: string | null
|
|
18
21
|
}
|
|
19
22
|
Insert: {
|
|
20
23
|
created_at?: string
|
|
24
|
+
genre?: string | null
|
|
21
25
|
id?: number
|
|
22
26
|
latestBeatmapHash?: string | null
|
|
23
27
|
owner?: number | null
|
|
28
|
+
status?: string | null
|
|
29
|
+
title?: string | null
|
|
24
30
|
}
|
|
25
31
|
Update: {
|
|
26
32
|
created_at?: string
|
|
33
|
+
genre?: string | null
|
|
27
34
|
id?: number
|
|
28
35
|
latestBeatmapHash?: string | null
|
|
29
36
|
owner?: number | null
|
|
37
|
+
status?: string | null
|
|
38
|
+
title?: string | null
|
|
30
39
|
}
|
|
31
40
|
Relationships: [
|
|
32
41
|
{
|
|
@@ -54,7 +63,6 @@ export type Database = {
|
|
|
54
63
|
image: string | null
|
|
55
64
|
length: number | null
|
|
56
65
|
noteCount: number | null
|
|
57
|
-
pageId: number | null
|
|
58
66
|
playcount: number | null
|
|
59
67
|
ranked: boolean | null
|
|
60
68
|
starRating: number | null
|
|
@@ -68,7 +76,6 @@ export type Database = {
|
|
|
68
76
|
image?: string | null
|
|
69
77
|
length?: number | null
|
|
70
78
|
noteCount?: number | null
|
|
71
|
-
pageId?: number | null
|
|
72
79
|
playcount?: number | null
|
|
73
80
|
ranked?: boolean | null
|
|
74
81
|
starRating?: number | null
|
|
@@ -82,21 +89,12 @@ export type Database = {
|
|
|
82
89
|
image?: string | null
|
|
83
90
|
length?: number | null
|
|
84
91
|
noteCount?: number | null
|
|
85
|
-
pageId?: number | null
|
|
86
92
|
playcount?: number | null
|
|
87
93
|
ranked?: boolean | null
|
|
88
94
|
starRating?: number | null
|
|
89
95
|
title?: string | null
|
|
90
96
|
}
|
|
91
|
-
Relationships: [
|
|
92
|
-
{
|
|
93
|
-
foreignKeyName: "beatmaps_pageId_fkey"
|
|
94
|
-
columns: ["pageId"]
|
|
95
|
-
isOneToOne: false
|
|
96
|
-
referencedRelation: "beatmapPages"
|
|
97
|
-
referencedColumns: ["id"]
|
|
98
|
-
},
|
|
99
|
-
]
|
|
97
|
+
Relationships: []
|
|
100
98
|
}
|
|
101
99
|
profiles: {
|
|
102
100
|
Row: {
|
|
@@ -110,6 +108,7 @@ export type Database = {
|
|
|
110
108
|
flag: string | null
|
|
111
109
|
id: number
|
|
112
110
|
play_count: number | null
|
|
111
|
+
profile_image: string | null
|
|
113
112
|
skill_points: number | null
|
|
114
113
|
squares_hit: number | null
|
|
115
114
|
total_score: number | null
|
|
@@ -128,6 +127,7 @@ export type Database = {
|
|
|
128
127
|
flag?: string | null
|
|
129
128
|
id?: number
|
|
130
129
|
play_count?: number | null
|
|
130
|
+
profile_image?: string | null
|
|
131
131
|
skill_points?: number | null
|
|
132
132
|
squares_hit?: number | null
|
|
133
133
|
total_score?: number | null
|
|
@@ -146,6 +146,7 @@ export type Database = {
|
|
|
146
146
|
flag?: string | null
|
|
147
147
|
id?: number
|
|
148
148
|
play_count?: number | null
|
|
149
|
+
profile_image?: string | null
|
|
149
150
|
skill_points?: number | null
|
|
150
151
|
squares_hit?: number | null
|
|
151
152
|
total_score?: number | null
|