From e40211e7c1831357bc448d575d47e619cbe04587 Mon Sep 17 00:00:00 2001 From: Fuwn Date: Fri, 18 Oct 2024 04:09:54 -0700 Subject: feat(graphql): paged badges query --- src/lib/Database/SB/User/badges.ts | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) (limited to 'src/lib/Database/SB/User') 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 => { - 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 => { + 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 []; -- cgit v1.2.3