From 852ee620f0a2f6a83cf83eba860ca951b66bb7e2 Mon Sep 17 00:00:00 2001 From: Ruben Beltran del Rio Date: Tue, 31 May 2022 01:04:10 +0200 Subject: Use supabase --- src/lib/stores/topics.ts | 33 +++++++++++++++++++++++++++++---- 1 file changed, 29 insertions(+), 4 deletions(-) (limited to 'src/lib/stores/topics.ts') diff --git a/src/lib/stores/topics.ts b/src/lib/stores/topics.ts index 0e39769..04c1e9e 100644 --- a/src/lib/stores/topics.ts +++ b/src/lib/stores/topics.ts @@ -1,7 +1,32 @@ -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'; import type { Topic } from '$lib/data/types'; -export const getTopic = (id: string) => - store({ key: 'topic', query: GET_TOPIC, variables: { id } }); +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 topicsForForum = (id: string) => collection(client + .from('topics') + .select('*') + .eq('forum_id', id), + []); +export const topicsForTag = (id: string) => collection(client + .from('topics') + .select(` + *,tags!inner(*) + `) + .eq('tags.tag', id), + []); -- cgit