Some checks failed
Deploy to Cloudflare Workers / deploy (push) Has been cancelled
31 lines
961 B
TypeScript
31 lines
961 B
TypeScript
import { createClient } from "@/lib/supabase/server";
|
|
import { requireUser } from "@/lib/api/auth";
|
|
import { apiError, apiSuccess, parseJson } from "@/lib/api/errors";
|
|
import * as leagues from "@/lib/services/leagues";
|
|
|
|
export async function GET() {
|
|
try {
|
|
const supabase = await createClient();
|
|
await requireUser(supabase);
|
|
const data = await leagues.listLeagues(supabase);
|
|
return apiSuccess(data);
|
|
} catch (e) {
|
|
return apiError(e);
|
|
}
|
|
}
|
|
|
|
export async function POST(request: Request) {
|
|
try {
|
|
const supabase = await createClient();
|
|
const user = await requireUser(supabase);
|
|
const body = await parseJson<{ name: string; description?: string }>(request);
|
|
if (!body.name?.trim()) {
|
|
return apiError(new Error("name is required"));
|
|
}
|
|
const data = await leagues.createLeague(supabase, user.id, body);
|
|
return apiSuccess(data, 201);
|
|
} catch (e) {
|
|
return apiError(e);
|
|
}
|
|
}
|