adds deleting

This commit is contained in:
2026-02-14 01:10:27 -08:00
parent 6f6dd434af
commit bec25aa943
4 changed files with 165 additions and 5 deletions

View File

@@ -8,6 +8,7 @@ import { ensureDatabaseReady } from "./db-init.js";
import { registerRoutes } from "./routes.js";
const app = Fastify({
disableRequestLogging: true,
logger: {
transport: {
target: "pino-pretty",
@@ -18,7 +19,11 @@ const app = Fastify({
await ensureDatabaseReady(app.log);
await app.register(cors, { origin: true, credentials: true });
await app.register(cors, {
origin: true,
credentials: true,
methods: ["GET", "HEAD", "POST", "DELETE", "OPTIONS"],
});
await app.register(swagger, {
openapi: {
@@ -32,9 +37,39 @@ await app.register(swagger, {
await app.register(swaggerUI, { routePrefix: "/docs" });
await app.register(sensible);
app.setErrorHandler((err, _req, reply) => {
app.addHook("onRequest", async (req) => {
if (req.url.startsWith("/health")) return;
req.log.info({ method: req.method, url: req.url }, "request received");
});
app.addHook("onResponse", async (req, reply) => {
if (req.url.startsWith("/health")) return;
const responseTimeMs = typeof reply.elapsedTime === "number" ? Number(reply.elapsedTime.toFixed(1)) : undefined;
req.log.info(
{
method: req.method,
url: req.url,
statusCode: reply.statusCode,
responseTimeMs,
},
"request completed"
);
});
app.setErrorHandler((err, req, reply) => {
const e = err as any;
const statusCode = e.statusCode ?? 500;
if (!req.url.startsWith("/health")) {
req.log.error(
{
method: req.method,
url: req.url,
statusCode,
err: e,
},
"request failed"
);
}
reply.status(statusCode).send({
error: true,
message: e.message ?? String(e),