Implement collaboration wallets, withdrawals, and app UI flows

This commit is contained in:
dwindown
2026-02-03 16:03:11 +07:00
parent 8e64780f72
commit 52b16dce07
16 changed files with 3039 additions and 28 deletions

View File

@@ -0,0 +1,50 @@
import { serve } from "https://deno.land/std@0.190.0/http/server.ts";
import { createClient } from "https://esm.sh/@supabase/supabase-js@2";
const corsHeaders = {
"Access-Control-Allow-Origin": "*",
"Access-Control-Allow-Headers": "authorization, x-client-info, apikey, content-type",
};
serve(async (req: Request): Promise<Response> => {
if (req.method === "OPTIONS") {
return new Response(null, { headers: corsHeaders });
}
try {
const supabase = createClient(
Deno.env.get("SUPABASE_URL")!,
Deno.env.get("SUPABASE_SERVICE_ROLE_KEY")!,
{
auth: {
autoRefreshToken: false,
persistSession: false,
},
},
);
const { data: settings, error } = await supabase
.from("platform_settings")
.select("owner_name, owner_avatar_url")
.limit(1)
.maybeSingle();
if (error) {
throw error;
}
return new Response(
JSON.stringify({
owner_name: settings?.owner_name || "Dwindi",
owner_avatar_url: settings?.owner_avatar_url || "",
}),
{ status: 200, headers: { ...corsHeaders, "Content-Type": "application/json" } },
);
} catch (error: unknown) {
const message = error instanceof Error ? error.message : "Failed to get owner identity";
return new Response(
JSON.stringify({ error: message }),
{ status: 500, headers: { ...corsHeaders, "Content-Type": "application/json" } },
);
}
});