aboutsummaryrefslogtreecommitdiff
path: root/src/lib/Database
diff options
context:
space:
mode:
authorFuwn <[email protected]>2024-10-18 04:09:54 -0700
committerFuwn <[email protected]>2024-10-18 04:09:54 -0700
commite40211e7c1831357bc448d575d47e619cbe04587 (patch)
treeaead83f2618fcb99e612698789f90e3167900a0e /src/lib/Database
parentfeat(tools): add simple tracker (diff)
downloaddue.moe-e40211e7c1831357bc448d575d47e619cbe04587.tar.xz
due.moe-e40211e7c1831357bc448d575d47e619cbe04587.zip
feat(graphql): paged badges query
Diffstat (limited to 'src/lib/Database')
-rw-r--r--src/lib/Database/IDB/tracker.ts2
-rw-r--r--src/lib/Database/SB/User/badges.ts15
2 files changed, 14 insertions, 3 deletions
diff --git a/src/lib/Database/IDB/tracker.ts b/src/lib/Database/IDB/tracker.ts
index dc25c8fd..4c3b116a 100644
--- a/src/lib/Database/IDB/tracker.ts
+++ b/src/lib/Database/IDB/tracker.ts
@@ -13,7 +13,7 @@ export class TrackerDatabase extends Dexie {
constructor() {
super('tracker');
this.version(1).stores({
- entries: 'id, url, title, progress',
+ entries: 'id, url, title, progress'
});
this.entries = this.table('entries');
diff --git a/src/lib/Database/SB/User/badges.ts b/src/lib/Database/SB/User/badges.ts
index be866acc..97f30e64 100644
--- a/src/lib/Database/SB/User/badges.ts
+++ b/src/lib/Database/SB/User/badges.ts
@@ -15,8 +15,19 @@ export interface Badge {
click_count?: number;
}
-export const getUserBadges = async (userId: number): Promise<Badge[]> => {
- const { data, error } = await sb.from('user_badges').select('*').eq('user_id', userId);
+const getPagination = (page: number, size: number) => {
+ const from = page ? page * (size ? +size : 3) : 0;
+
+ return { from, to: page ? from + size - 1 : size - 1 };
+};
+
+export const getUserBadges = async (userId: number, page = 0, size = -1): Promise<Badge[]> => {
+ const { from, to } = getPagination(page, size);
+ let query = sb.from('user_badges').select('*').eq('user_id', userId);
+
+ if (size !== -1) query = query.range(from, to);
+
+ const { data, error } = await query;
if (error) return [];