28 lines
1.0 KiB
TypeScript
28 lines
1.0 KiB
TypeScript
import { jsonError, jsonOk, readJsonBody } from "@/lib/server/api";
|
|
import { requireSuperAdminUser } from "@/lib/server/auth/current-user";
|
|
import { getBillingAccountConfig } from "@/lib/server/billing-service";
|
|
import { saveApiSettings } from "@/lib/server/app-settings";
|
|
|
|
export const runtime = "nodejs";
|
|
|
|
export async function PATCH(request: Request) {
|
|
try {
|
|
await requireSuperAdminUser();
|
|
const body = await readJsonBody<Record<string, unknown>>(request);
|
|
const values = {
|
|
ZHINIAN_BILLING_ACCOUNT_NAME: normalize(body.accountName),
|
|
ZHINIAN_BILLING_ACCOUNT_BANK: normalize(body.bankName),
|
|
ZHINIAN_BILLING_ACCOUNT_NUMBER: normalize(body.accountNumber),
|
|
ZHINIAN_BILLING_CONTACT: normalize(body.contact)
|
|
};
|
|
await saveApiSettings(values);
|
|
return jsonOk({ billingAccount: getBillingAccountConfig() });
|
|
} catch (error) {
|
|
return jsonError(error, 500, { request, source: "api.admin.billing.account" });
|
|
}
|
|
}
|
|
|
|
function normalize(value: unknown): string {
|
|
return typeof value === "string" ? value.trim() : "";
|
|
}
|