delete gym working

This commit is contained in:
echo 2026-03-19 00:44:39 +01:00
parent 8cac57ed67
commit ffd3aabc55
3 changed files with 20 additions and 10 deletions

Binary file not shown.

View File

@ -30,7 +30,7 @@ export async function DELETE(
const { userId } = await auth(); const { userId } = await auth();
if (!userId) { if (!userId) {
return new NextResponse("Unauthorized", { status: 401 }); return NextResponse.json({ error: "Unauthorized" }, { status: 401 });
} }
// Ensure user is synced // Ensure user is synced
@ -60,9 +60,10 @@ export async function DELETE(
// Only superAdmin can delete gyms // Only superAdmin can delete gyms
if (!currentUser || currentUser.role !== "superAdmin") { if (!currentUser || currentUser.role !== "superAdmin") {
return new NextResponse("Forbidden - Only superAdmin can delete gyms", { return NextResponse.json(
status: 403, { error: "Forbidden - Only superAdmin can delete gyms" },
}); { status: 403 },
);
} }
await ensureGymsTable(); await ensureGymsTable();
@ -70,7 +71,7 @@ export async function DELETE(
// Check if gym exists // Check if gym exists
const gymRows = await db.all(sql`SELECT * FROM gyms WHERE id = ${gymId}`); const gymRows = await db.all(sql`SELECT * FROM gyms WHERE id = ${gymId}`);
if (gymRows.length === 0) { if (gymRows.length === 0) {
return new NextResponse("Gym not found", { status: 404 }); return NextResponse.json({ error: "Gym not found" }, { status: 404 });
} }
// Soft delete - mark as inactive // Soft delete - mark as inactive
@ -84,6 +85,9 @@ export async function DELETE(
}); });
} catch (error) { } catch (error) {
log.error("Failed to delete gym", error); log.error("Failed to delete gym", error);
return new NextResponse("Internal Server Error", { status: 500 }); return NextResponse.json(
{ error: "Internal Server Error" },
{ status: 500 },
);
} }
} }

View File

@ -199,14 +199,20 @@ export default function SettingsPage() {
setDeletingGym(true); setDeletingGym(true);
setGymMessage(null); setGymMessage(null);
try { try {
await axios.delete(`/api/gyms/${gymId}`); const response = await axios.delete(`/api/gyms/${gymId}`);
log.info("Delete gym response:", response.data);
setGymMessage({ type: "success", text: "Gym deleted successfully" }); setGymMessage({ type: "success", text: "Gym deleted successfully" });
setSelectedGym(null); setSelectedGym(null);
setGymStats(null); setGymStats(null);
fetchGyms(); await fetchGyms();
} catch (error) { } catch (error: any) {
log.error("Failed to delete gym", error); log.error("Failed to delete gym", error);
setGymMessage({ type: "error", text: "Failed to delete gym" }); const errorMessage =
error.response?.data?.error ||
error.response?.data ||
error.message ||
"Failed to delete gym";
setGymMessage({ type: "error", text: errorMessage });
} finally { } finally {
setDeletingGym(false); setDeletingGym(false);
} }