import { NextRequest } from "next/server"; import { getMultipleConfigs, updateSystemConfig, } from "@/lib/dto/system-config"; import { checkUserStatus } from "@/lib/dto/user"; import { getCurrentUser } from "@/lib/session"; export async function GET(req: NextRequest) { try { const user = checkUserStatus(await getCurrentUser()); if (user instanceof Response) return user; if (user.role !== "ADMIN") { return Response.json("Unauthorized", { status: 401 }); } const configs = await getMultipleConfigs([ "enable_user_registration", "enable_subdomain_apply", "system_notification", "enable_github_oauth", "enable_google_oauth", "enable_liunxdo_oauth", "enable_resend_email_login", "enable_email_password_login", "enable_email_catch_all", "catch_all_emails", "enable_tg_email_push", "tg_email_bot_token", "tg_email_chat_id", "tg_email_template", "tg_email_target_white_list", "enable_email_registration_suffix_limit", "email_registration_suffix_limit_white_list", "enable_subdomain_status_email_pusher", ]); return Response.json(configs, { status: 200 }); } catch (error) { console.error("[Error]", error); return Response.json(error.message || "Server error", { status: 500 }); } } export async function POST(req: NextRequest) { try { const user = checkUserStatus(await getCurrentUser()); if (user instanceof Response) return user; if (user.role !== "ADMIN") { return Response.json("Unauthorized", { status: 401 }); } const { key, value, type } = await req.json(); if (!key || !type) { return Response.json("key and value is required", { status: 400 }); } const configs = await getMultipleConfigs([key]); if (key in configs) { await updateSystemConfig(key, { value, type }); return Response.json("Success", { status: 200 }); } return Response.json("Invalid key", { status: 400 }); } catch (error) { console.error("[Error]", error); return Response.json(error.message || "Server error", { status: 500 }); } }