Files
homaroma/apps/backend/src/routes/settings.ts
T

47 lines
1.3 KiB
TypeScript

import { Elysia, t } from "elysia";
import prisma from "../lib/prisma";
export const settingsRoute = new Elysia({ prefix: "/settings" })
.get("/", async ({ set }) => {
try {
let settings = await prisma.storeSettings.findFirst();
if (!settings) {
settings = await prisma.storeSettings.create({
data: {}
});
}
return settings;
} catch (err) {
console.error("[Settings] Error:", err);
set.status = 500;
return { error: "Failed to fetch settings" };
}
})
.put("/", async ({ body, set }) => {
try {
const data = body as any;
let settings = await prisma.storeSettings.findFirst();
if (!settings) {
settings = await prisma.storeSettings.create({ data });
} else {
settings = await prisma.storeSettings.update({
where: { id: settings.id },
data
});
}
return settings;
} catch (err) {
console.error("[Settings] Error:", err);
set.status = 500;
return { error: "Failed to update settings" };
}
}, {
body: t.Object({
shippingFee: t.Number(),
bankName: t.String(),
bankAccountName: t.String(),
bankAccountNumber: t.String(),
pointsEarnRate: t.Number()
})
});