Bugfixes (Dark Mode, Dropdown-Kontrast, IP-Suche), Lesezeichen-Ausbau (Farbe, Beschreibung, Favicon), Zuletzt-besucht, Spaeter-lesen, kombinierter Import-Export, Scanner-Reconciliation, Admin-Ueberarbeitung

This commit is contained in:
2026-07-20 07:52:38 +02:00
parent dc91a9aba9
commit 96cf29fef4
37 changed files with 1988 additions and 494 deletions

View File

@@ -0,0 +1,27 @@
import type { FastifyInstance } from "fastify";
import * as recentVisitsRepo from "../db/repositories/recentVisits.js";
export async function recentVisitsRoutes(app: FastifyInstance): Promise<void> {
app.get("/api/recent-visits", async (request) => {
const query = request.query as { limit?: string };
const limit = query.limit ? Number(query.limit) : undefined;
return recentVisitsRepo.listRecentVisits(limit);
});
app.post("/api/recent-visits", async (request, reply) => {
const body = request.body as { itemType?: string; itemId?: string } | undefined;
if (body?.itemType !== "service" && body?.itemType !== "bookmark") {
return reply.code(400).send({ error: "itemType muss 'service' oder 'bookmark' sein" });
}
if (!body.itemId) {
return reply.code(400).send({ error: "itemId erforderlich" });
}
recentVisitsRepo.recordVisit(body.itemType, body.itemId);
return reply.code(201).send({ ok: true });
});
app.delete("/api/recent-visits", async () => {
recentVisitsRepo.clearRecentVisits();
return { ok: true };
});
}