diff options
| author | Fuwn <[email protected]> | 2024-02-11 12:59:05 -0800 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2024-02-11 12:59:05 -0800 |
| commit | 80cf4f640be4005630fe9f718f45e4e79409b142 (patch) | |
| tree | d7b163d6139140638999ac2a5f61fca42b6e812d /src/lib/Database | |
| parent | feat(database): events implementation (diff) | |
| download | due.moe-80cf4f640be4005630fe9f718f45e4e79409b142.tar.xz due.moe-80cf4f640be4005630fe9f718f45e4e79409b142.zip | |
feat(database): implement event badges database
Diffstat (limited to 'src/lib/Database')
| -rw-r--r-- | src/lib/Database/eventBadges.ts | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/src/lib/Database/eventBadges.ts b/src/lib/Database/eventBadges.ts new file mode 100644 index 00000000..145d0bc1 --- /dev/null +++ b/src/lib/Database/eventBadges.ts @@ -0,0 +1,49 @@ +import supabase from './supabase'; + +interface Badge { + id: number; + created_at: string; + updated_at: string; + image_url: string; + image_artist: string; + description: string; + event: number; + group: number; +} + +interface NewBadge { + updated_at?: string; + image_url: string; + image_artist: string; + description: string; +} + +interface GetBy { + event?: number; + group?: number; +} + +export const getBadges = async (getBy?: GetBy) => { + let data, error; + + if (getBy?.event) + [data, error] = await supabase.from('badges').select('*').eq('event', getBy.event); + else if (getBy?.group) + [data, error] = await supabase.from('badges').select('*').eq('group', getBy.group); + else [data, error] = await supabase.from('badges').select('*'); + + if (error) return []; + + return data as Badge[]; +}; + +export const createBadge = async (badge: NewBadge) => await supabase.from('badges').insert(badge); + +export const deleteBadge = async (id: number) => + await supabase.from('badges').delete().eq('id', id); + +export const updateBadge = async (id: number, badge: NewBadge) => { + if (!badge.updated_at) badge.updated_at = new Date().toISOString(); + + return await supabase.from('badges').update(badge).eq('id', id); +}; |