diff options
| author | Fuwn <[email protected]> | 2024-10-18 04:09:54 -0700 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2024-10-18 04:09:54 -0700 |
| commit | e40211e7c1831357bc448d575d47e619cbe04587 (patch) | |
| tree | aead83f2618fcb99e612698789f90e3167900a0e /src/lib/Database | |
| parent | feat(tools): add simple tracker (diff) | |
| download | due.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.ts | 2 | ||||
| -rw-r--r-- | src/lib/Database/SB/User/badges.ts | 15 |
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 []; |