From 13bd717336d2b1aa4f17f686ba25a010ffebee4a Mon Sep 17 00:00:00 2001 From: "Builder.io" Date: Wed, 1 Oct 2025 00:57:36 +0000 Subject: [PATCH] Make community service rely on Supabase for reads cgen-5e5b0294d5b843cdb86140eca686cef6 --- client/lib/supabase-service.ts | 94 ++++++++++------------------------ 1 file changed, 27 insertions(+), 67 deletions(-) diff --git a/client/lib/supabase-service.ts b/client/lib/supabase-service.ts index daf10b53..f728f840 100644 --- a/client/lib/supabase-service.ts +++ b/client/lib/supabase-service.ts @@ -234,47 +234,27 @@ export const achievementService = { // Community Services export const communityService = { async getPosts(limit = 10): Promise { - try { - const resp = await fetch(`/api/posts?limit=${limit}`); - if (resp.ok) { - const data = await resp.json(); - if (Array.isArray(data)) { - return data as CommunityPost[]; - } - } else if (resp.status >= 400) { - console.warn("API responded with", resp.status); - } - } catch (error) { - console.warn("Failed to fetch posts via API:", error); - } - - try { - const { data, error } = await supabase - .from("community_posts") - .select( - ` - *, - user_profiles ( - username, - full_name, - avatar_url - ) - `, + const { data, error } = await supabase + .from("community_posts") + .select( + ` + *, + user_profiles ( + username, + full_name, + avatar_url ) - .eq("is_published", true) - .order("created_at", { ascending: false }) - .limit(limit); + `, + ) + .eq("is_published", true) + .order("created_at", { ascending: false }) + .limit(limit); - if (error) { - console.error("Failed to load posts from Supabase:", error); - return []; - } - - return (Array.isArray(data) ? data : []) as CommunityPost[]; - } catch (error) { - console.error("Unexpected error loading posts:", error); - return []; + if (error) { + throw error; } + + return (Array.isArray(data) ? data : []) as CommunityPost[]; }, async createPost( @@ -314,37 +294,17 @@ export const communityService = { }, async getUserPosts(userId: string): Promise { - try { - const resp = await fetch(`/api/user/${userId}/posts`); - if (resp.ok) { - const data = await resp.json(); - if (Array.isArray(data)) { - return data as CommunityPost[]; - } - } else if (resp.status >= 400) { - console.warn("API responded with", resp.status); - } - } catch (error) { - console.warn("Failed to fetch user posts via API:", error); + const { data, error } = await supabase + .from("community_posts") + .select("*") + .eq("author_id", userId) + .order("created_at", { ascending: false }); + + if (error) { + throw error; } - try { - const { data, error } = await supabase - .from("community_posts") - .select("*") - .eq("author_id", userId) - .order("created_at", { ascending: false }); - - if (error) { - console.error("Failed to load user posts from Supabase:", error); - return []; - } - - return (Array.isArray(data) ? data : []) as CommunityPost[]; - } catch (error) { - console.error("Unexpected error loading user posts:", error); - return []; - } + return (Array.isArray(data) ? data : []) as CommunityPost[]; }, };