1
0
Fork 0
mirror of https://github.com/seanmorley15/AdventureLog.git synced 2025-08-04 12:45:17 +02:00

Add clearvisits API endpoint and implement DELETE method***

***Handle error when no id is found in DELETE method***
***Update deleteData function in log page to use clearvisits API endpoint
This commit is contained in:
Sean Morley 2024-04-10 17:54:19 +00:00
parent bc0e1b4db2
commit 3dcad53004
3 changed files with 53 additions and 3 deletions

View file

@ -0,0 +1,27 @@
import type { RequestEvent } from "@sveltejs/kit";
import { db } from "$lib/db/db.server";
import { eq } from "drizzle-orm";
import { userVisitedAdventures } from "$lib/db/schema";
export async function DELETE(event: RequestEvent): Promise<Response> {
if (!event.locals.user) {
return new Response(JSON.stringify({ error: "No user found" }), {
status: 401,
headers: {
"Content-Type": "application/json",
},
});
}
let res = await db
.delete(userVisitedAdventures)
.where(
eq(userVisitedAdventures.userId, event.locals.user.id),
)
.execute();
return new Response(JSON.stringify({ res: res }), {
status: 200,
headers: {
"Content-Type": "application/json",
},
});
}

View file

@ -52,6 +52,15 @@ export async function DELETE(event: RequestEvent): Promise<Response> {
// get id from the body // get id from the body
const { id } = await event.request.json(); const { id } = await event.request.json();
if (!id) {
return new Response(JSON.stringify({ error: "No id found" }), {
status: 400,
headers: {
"Content-Type": "application/json",
},
});
}
let res = await db let res = await db
.delete(userVisitedAdventures) .delete(userVisitedAdventures)
.where( .where(

View file

@ -167,9 +167,23 @@
} }
function deleteData() { function deleteData() {
clearAdventures(); fetch("/api/clearvisits", {
adventures = getAdventures(); method: "DELETE",
showToast("deleted"); headers: {
"Content-Type": "application/json",
},
})
.then((response) => response.json())
.then((data) => {
console.log("Success:", data);
// remove adventure from array where id matches
adventures = [];
showToast("removed");
visitCount.set(0);
})
.catch((error) => {
console.error("Error:", error);
});
} }
function removeAdventure(event: { detail: number }) { function removeAdventure(event: { detail: number }) {