chatdesk-ui/chatdesk-ui/app/api/username/available/route.ts

40 lines
1.1 KiB
TypeScript

import { Database } from "@/supabase/types"
import { createClient } from "@supabase/supabase-js"
//import { getRuntimeEnv } from "@/lib/ipconfig" // 新增引入
import { getRuntimeEnv } from "@/lib/runtime-env"
export const runtime = "edge"
export async function POST(request: Request) {
const json = await request.json()
const { username } = json as {
username: string
}
try {
const supabaseAdmin = createClient<Database>(
getRuntimeEnv("SUPABASE_URL") ?? "http://localhost:8000",
process.env.SUPABASE_SERVICE_ROLE_KEY!
)
const { data: usernames, error } = await supabaseAdmin
.from("profiles")
.select("username")
.eq("username", username)
if (!usernames) {
throw new Error(error.message)
}
return new Response(JSON.stringify({ isAvailable: !usernames.length }), {
status: 200
})
} catch (error: any) {
const errorMessage = error.error?.message || "An unexpected error occurred"
const errorCode = error.status || 500
return new Response(JSON.stringify({ message: errorMessage }), {
status: errorCode
})
}
}