aboutsummaryrefslogtreecommitdiff
path: root/src/lib/Database/SB/events.ts
blob: b7e2bb8530d932583f27348243ad9c64f277a739 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
import type Group from '$lib/Events/Group.svelte';
import sb from '../sb';

export interface Event {
  id: number;
  created_at: string;
  updated_at: string;
  title: string;
  description: string;
  group: Group;
  banner: string;
  anilist_url: string;
}

interface NewEvent {
  updated_at?: string;
  title: string;
  description: string;
}

export const getEvents = async () => {
  const { data, error } = await sb.from('events').select('*, group:groups(*)');

  if (error) return [];

  return data as Event[];
};

export const getGroupEvents = async (group: string) => {
  const { data, error } = await sb.from('events').select('*').eq('group', group);

  if (error) return [];

  return data as Event[];
};

export const createEvent = async (event: NewEvent) => await sb.from('events').insert(event);

export const deleteEvent = async (id: number) => await sb.from('events').delete().eq('id', id);

export const updateEvent = async (id: number, event: NewEvent) => {
  if (!event.updated_at) event.updated_at = new Date().toISOString();

  return await sb.from('events').update(event).eq('id', id);
};