diff options
Diffstat (limited to 'src/lib/Database/SB/badges.ts')
| -rw-r--r-- | src/lib/Database/SB/badges.ts | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/src/lib/Database/SB/badges.ts b/src/lib/Database/SB/badges.ts new file mode 100644 index 00000000..f67ffe97 --- /dev/null +++ b/src/lib/Database/SB/badges.ts @@ -0,0 +1,47 @@ +import sb from '../sb'; + +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 sb.from('badges').select('*').eq('event', getBy.event); + else if (getBy?.group) + [data, error] = await sb.from('badges').select('*').eq('group', getBy.group); + else [data, error] = await sb.from('badges').select('*'); + + if (error) return []; + + return data as Badge[]; +}; + +export const createBadge = async (badge: NewBadge) => await sb.from('badges').insert(badge); + +export const deleteBadge = async (id: number) => await sb.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 sb.from('badges').update(badge).eq('id', id); +}; |