From 80cf4f640be4005630fe9f718f45e4e79409b142 Mon Sep 17 00:00:00 2001 From: Fuwn Date: Sun, 11 Feb 2024 12:59:05 -0800 Subject: feat(database): implement event badges database --- src/lib/Database/eventBadges.ts | 49 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 src/lib/Database/eventBadges.ts (limited to 'src/lib/Database') 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); +}; -- cgit v1.2.3