fix: resolve critical bugs and improve admin panel reliability
- Fix missing await in pets API route causing empty responses - Fix updateSetting to use upsert pattern instead of update-only - Create missing /api/admin/sounds/upload route (upload was broken) - Wire bulk delete actions in catalog table - Replace native confirm() with useConfirmDialog() across rooms and clone pages - Add error logging to silent catch blocks in radio actions and audit route - Add graceful degradation to devops health endpoint - Add cache eviction to clone icon route to prevent memory leak - Internationalize hardcoded Italian strings to English - Remove placeholder created_at fields from prefix API responses - Remove dead code and fix type errors in translations and import pages - Standardize PERMS import path in analytics export route
This commit is contained in:
1 parent
6f53ca514d
commit
1b817fe434
19 files changed
+255
-89
No files matched your search
@@ -1,17 +1,34 @@
|
||||
import { NextResponse } from "next/server";
|
||||
import { fetchOpsHealth } from "@/lib/admin/ops-health";
|
||||
import { withAdmin } from "@/lib/api-handler";
|
||||
import { logger } from "@/lib/logger";
|
||||
import { PERMS } from "@/lib/permissions";
|
||||
|
||||
export const GET = withAdmin({ permission: PERMS.DEVOPS_VIEW }, async () => {
|
||||
const health = await fetchOpsHealth();
|
||||
try {
|
||||
const health = await fetchOpsHealth();
|
||||
|
||||
return NextResponse.json({
|
||||
database: health.dbOk,
|
||||
dbLatency: health.dbLatencyMs,
|
||||
redis: health.redisOk,
|
||||
emulator: health.emulatorOk,
|
||||
onlineUsers: health.onlineUsers,
|
||||
timestamp: new Date().toISOString(),
|
||||
});
|
||||
return NextResponse.json({
|
||||
database: health.dbOk,
|
||||
dbLatency: health.dbLatencyMs,
|
||||
redis: health.redisOk,
|
||||
emulator: health.emulatorOk,
|
||||
onlineUsers: health.onlineUsers,
|
||||
timestamp: new Date().toISOString(),
|
||||
});
|
||||
} catch (err) {
|
||||
logger.error("Health check failed", { err });
|
||||
return NextResponse.json(
|
||||
{
|
||||
database: false,
|
||||
dbLatency: null,
|
||||
redis: false,
|
||||
emulator: false,
|
||||
onlineUsers: 0,
|
||||
timestamp: new Date().toISOString(),
|
||||
error: "Health check partially failed",
|
||||
},
|
||||
{ status: 503 },
|
||||
);
|
||||
}
|
||||
});
|
||||
Reference in new issue
Block a user