aboutsummaryrefslogtreecommitdiff
path: root/src/lib
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
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')
-rw-r--r--src/lib/Database/IDB/tracker.ts2
-rw-r--r--src/lib/Database/SB/User/badges.ts15
-rw-r--r--src/lib/Tools/tools.ts3
3 files changed, 16 insertions, 4 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 [];
diff --git a/src/lib/Tools/tools.ts b/src/lib/Tools/tools.ts
index 06249ab3..988d7826 100644
--- a/src/lib/Tools/tools.ts
+++ b/src/lib/Tools/tools.ts
@@ -38,7 +38,8 @@ export const tools: {
},
tracker: {
name: () => 'Tracker',
- description: () => 'Track your anime and manga progress with ease, intended for media that doesn\'t qualify for an AniList entry',
+ description: () =>
+ "Track your anime and manga progress with ease, intended for media that doesn't qualify for an AniList entry",
id: 'tracker',
hidden: true
},