diff options
Diffstat (limited to 'src/lib/Database/SB/User')
| -rw-r--r-- | src/lib/Database/SB/User/badges.ts | 15 |
1 files changed, 13 insertions, 2 deletions
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 []; |