Files
thrilltrack-explorer/supabase/functions/_shared/banCheck.ts
2025-10-30 01:47:51 +00:00

48 lines
1.3 KiB
TypeScript

import { createClient, SupabaseClient } from "https://esm.sh/@supabase/supabase-js@2.57.4";
import { edgeLogger } from "./logger.ts";
export async function checkUserBanned(
userId: string,
supabase: SupabaseClient
): Promise<{ banned: boolean; error?: string }> {
try {
const { data: profile, error } = await supabase
.from('profiles')
.select('banned')
.eq('user_id', userId)
.single();
if (error) {
edgeLogger.error('Ban check failed', { userId, error: error.message });
return { banned: false, error: 'Unable to verify account status' };
}
if (!profile) {
return { banned: false, error: 'Profile not found' };
}
return { banned: profile.banned };
} catch (error) {
edgeLogger.error('Ban check exception', { userId, error });
return { banned: false, error: 'Internal error checking account status' };
}
}
export function createBannedResponse(requestId: string, corsHeaders: Record<string, string>) {
return new Response(
JSON.stringify({
error: 'Account suspended',
message: 'Your account has been suspended. Contact support for assistance.',
requestId
}),
{
status: 403,
headers: {
...corsHeaders,
'Content-Type': 'application/json',
'X-Request-ID': requestId
}
}
);
}