71 lines
1.7 KiB
JavaScript
71 lines
1.7 KiB
JavaScript
// src/pages/api/switches.js
|
|
import Database from "better-sqlite3";
|
|
|
|
const DB_PATH =
|
|
process.env.FUZ_DB_PATH || "./src/data/ServicesRange.db";
|
|
|
|
function getDb() {
|
|
return new Database(DB_PATH, { readonly: true });
|
|
}
|
|
|
|
export function GET() {
|
|
const db = getDb();
|
|
|
|
try {
|
|
const buildingTypes = db
|
|
.prepare("SELECT code, label FROM jambox_building_types ORDER BY is_default DESC, code")
|
|
.all();
|
|
|
|
const contractTypes = db
|
|
.prepare("SELECT code, label FROM jambox_contract_types ORDER BY is_default DESC, code")
|
|
.all();
|
|
|
|
const switches = [
|
|
{
|
|
id: "budynek",
|
|
etykieta: "Rodzaj budynku",
|
|
domyslny: buildingTypes[0]?.code ?? 1,
|
|
title: "Zmień rodzaj budynku by zobaczyć odpowiednie ceny",
|
|
opcje: buildingTypes.map((b) => ({
|
|
id: b.code,
|
|
nazwa: b.label,
|
|
})),
|
|
},
|
|
{
|
|
id: "umowa",
|
|
etykieta: "Okres umowy",
|
|
domyslny: contractTypes[0]?.code ?? 1,
|
|
title: "Wybierz okres umowy by zobaczyć odpowiednie ceny",
|
|
opcje: contractTypes.map((c) => ({
|
|
id: c.code,
|
|
nazwa: c.label,
|
|
})),
|
|
},
|
|
];
|
|
|
|
return new Response(
|
|
JSON.stringify({ ok: true, data: switches }),
|
|
{
|
|
status: 200,
|
|
headers: {
|
|
"Content-Type": "application/json; charset=utf-8",
|
|
"Cache-Control": "public, max-age=60",
|
|
},
|
|
}
|
|
);
|
|
} catch (err) {
|
|
console.error("Błąd w /api/switches:", err);
|
|
return new Response(
|
|
JSON.stringify({ ok: false, error: err.message || "DB_ERROR" }),
|
|
{
|
|
status: 500,
|
|
headers: {
|
|
"Content-Type": "application/json; charset=utf-8",
|
|
},
|
|
}
|
|
);
|
|
} finally {
|
|
db.close();
|
|
}
|
|
}
|