aboutsummaryrefslogtreecommitdiff
path: root/src/lib/stores/topics.ts
blob: 04c1e9e7770a80ab1dd739a023e489cb6699a364 (plain)
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
import { createClient } from '@supabase/supabase-js'
import { single, collection } from './supabase';
import { supabase } from '$lib/config/config';

import type { Topic } from '$lib/data/types';

const client = createClient(supabase.url, supabase.key);

export const topic = (id: string, withPosts = false) => single<Topic>(client
  .from('topics')
  .select(withPosts ? `*, 
    forum: forums (*),
    tags: topic_tags (*),
    posts (
      *,
      author:author_id (*)
    )
  `: '*' )
  .eq('id', id),
  null);
export const topicsForForum = (id: string) => collection<Topic>(client
  .from('topics')
  .select('*')
  .eq('forum_id', id),
  []);
export const topicsForTag = (id: string) => collection<Topic>(client
  .from('topics')
  .select(`
    *,tags!inner(*)
  `)
  .eq('tags.tag', id),
  []);