diff options
Diffstat (limited to 'src/lib/stores/topics.ts')
| -rw-r--r-- | src/lib/stores/topics.ts | 43 |
1 files changed, 25 insertions, 18 deletions
diff --git a/src/lib/stores/topics.ts b/src/lib/stores/topics.ts index 04c1e9e..1842a4d 100644 --- a/src/lib/stores/topics.ts +++ b/src/lib/stores/topics.ts @@ -1,4 +1,4 @@ -import { createClient } from '@supabase/supabase-js' +import { createClient } from '@supabase/supabase-js'; import { single, collection } from './supabase'; import { supabase } from '$lib/config/config'; @@ -6,27 +6,34 @@ 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 ? `*, +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(` + ` + : '*' + ) + .eq('id', id), + null + ); +export const topicsForTag = (id: string) => + collection<Topic>( + client + .from('topics') + .select( + ` *,tags!inner(*) - `) - .eq('tags.tag', id), - []); + ` + ) + .eq('tags.tag', id), + [] + ); |