diff --git a/apps/admin/data/fitai.db b/apps/admin/data/fitai.db index f647480..26a48f5 100644 Binary files a/apps/admin/data/fitai.db and b/apps/admin/data/fitai.db differ diff --git a/apps/admin/src/app/api/gyms/[id]/route.ts b/apps/admin/src/app/api/gyms/[id]/route.ts index 5897965..259c1e0 100644 --- a/apps/admin/src/app/api/gyms/[id]/route.ts +++ b/apps/admin/src/app/api/gyms/[id]/route.ts @@ -30,7 +30,7 @@ export async function DELETE( const { userId } = await auth(); if (!userId) { - return new NextResponse("Unauthorized", { status: 401 }); + return NextResponse.json({ error: "Unauthorized" }, { status: 401 }); } // Ensure user is synced @@ -60,9 +60,10 @@ export async function DELETE( // Only superAdmin can delete gyms if (!currentUser || currentUser.role !== "superAdmin") { - return new NextResponse("Forbidden - Only superAdmin can delete gyms", { - status: 403, - }); + return NextResponse.json( + { error: "Forbidden - Only superAdmin can delete gyms" }, + { status: 403 }, + ); } await ensureGymsTable(); @@ -70,7 +71,7 @@ export async function DELETE( // Check if gym exists const gymRows = await db.all(sql`SELECT * FROM gyms WHERE id = ${gymId}`); 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 @@ -84,6 +85,9 @@ export async function DELETE( }); } catch (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 }, + ); } } diff --git a/apps/admin/src/app/settings/page.tsx b/apps/admin/src/app/settings/page.tsx index c1d7317..4e286f5 100644 --- a/apps/admin/src/app/settings/page.tsx +++ b/apps/admin/src/app/settings/page.tsx @@ -199,14 +199,20 @@ export default function SettingsPage() { setDeletingGym(true); setGymMessage(null); 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" }); setSelectedGym(null); setGymStats(null); - fetchGyms(); - } catch (error) { + await fetchGyms(); + } catch (error: any) { 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 { setDeletingGym(false); }