X-Git-Url: https://git.r.bdr.sh/rbdr/forum/blobdiff_plain/a7cf03c192470cbab13edeb1aec99e0c66dede10..HEAD:/src/lib/stores/topics.ts?ds=inline diff --git a/src/lib/stores/topics.ts b/src/lib/stores/topics.ts index 84228cd..1842a4d 100644 --- a/src/lib/stores/topics.ts +++ b/src/lib/stores/topics.ts @@ -1,4 +1,39 @@ -import { store } from './apollo'; -import { GET_TOPIC } from '$lib/data/queries'; +import { createClient } from '@supabase/supabase-js'; +import { single, collection } from './supabase'; +import { supabase } from '$lib/config/config'; -export const getTopic = (id: string) => store({ key: 'topic', query: GET_TOPIC, variables: { id } }); +import type { Topic } from '$lib/data/types'; + +const client = createClient(supabase.url, supabase.key); + +export const topic = (id: string, withPosts = false) => + single( + client + .from('topics') + .select( + withPosts + ? `*, + forum: forums (*), + tags: topic_tags (*), + posts ( + *, + author:author_id (*) + ) + ` + : '*' + ) + .eq('id', id), + null + ); +export const topicsForTag = (id: string) => + collection( + client + .from('topics') + .select( + ` + *,tags!inner(*) + ` + ) + .eq('tags.tag', id), + [] + );