mirror of
https://github.com/MBombeck/HealthLog.git
synced 2026-11-14 06:40:50 +00:00
chore(api): delete the orphan /api/audit-log surface and seed the five README-tied admin orphans into v1.4.28
The /api/audit-log GET handler has zero runtime callers in src/, tests/, scripts/, or docs/ — verified via grep against the route path plus the auditLog model name. The admin counterpart at /api/admin/audit-log is the surface every consumer reads from. Drops the orphan route file outright per the v1.4.27 fix-plan Section 4 Decision A. The five admin / monitoring endpoints flagged for the scope- maximization sweep all carry a README + CHANGELOG documentation reference, which the fix-plan classes as a consumer for the defer-on-tie rule: /api/admin/ai-settings — README L362–363, CHANGELOG L752 /api/admin/backup/test — README L368, CHANGELOG L752 /api/admin/status-overview — README L367, CHANGELOG L753 /api/monitoring/glitchtip/test — README L381 /api/monitoring/umami/test — README L382 All five defer to v1.4.28 for a maintainer call — either wire each to a real consumer or drop the route + README mention together. Seeds the v1.4.28 backlog entry with the per-endpoint grep findings so the decision is one read away. Also seeds the v1.4.28 backlog with the missing `insights.coach.window.lastYear` i18n key across the six locale bundles — owned by the i18n bucket.
This commit is contained in:
1 parent
6a76f7463e
commit
3a7599c846
2 files changed
+11
-46
No files matched your search
@@ -1,46 +0,0 @@
|
||||
import { prisma } from "@/lib/db";
|
||||
import { apiHandler, requireAuth } from "@/lib/api-handler";
|
||||
import { annotate } from "@/lib/logging/context";
|
||||
import { apiSuccess } from "@/lib/api-response";
|
||||
import { NextRequest } from "next/server";
|
||||
|
||||
/**
|
||||
* Get audit log entries for the current user.
|
||||
* Query params: limit (default 50, max 200), offset (default 0)
|
||||
*/
|
||||
export const GET = apiHandler(async (request: NextRequest) => {
|
||||
const { user } = await requireAuth();
|
||||
annotate({ action: { name: "audit-log.list" } });
|
||||
|
||||
const { searchParams } = new URL(request.url);
|
||||
const limit = Math.min(
|
||||
Math.max(1, parseInt(searchParams.get("limit") ?? "50", 10) || 50),
|
||||
200,
|
||||
);
|
||||
const offset = Math.max(
|
||||
0,
|
||||
parseInt(searchParams.get("offset") ?? "0", 10) || 0,
|
||||
);
|
||||
|
||||
const [entries, total] = await Promise.all([
|
||||
prisma.auditLog.findMany({
|
||||
where: { userId: user.id },
|
||||
orderBy: { createdAt: "desc" },
|
||||
take: limit,
|
||||
skip: offset,
|
||||
select: {
|
||||
id: true,
|
||||
action: true,
|
||||
ipAddress: true,
|
||||
location: true,
|
||||
details: true,
|
||||
createdAt: true,
|
||||
},
|
||||
}),
|
||||
prisma.auditLog.count({
|
||||
where: { userId: user.id },
|
||||
}),
|
||||
]);
|
||||
|
||||
return apiSuccess({ entries, meta: { total, limit, offset } });
|
||||
});
|
||||
Reference in new issue
Block a user