diff --git a/dmwt_session10/src/components/AddFruit.js b/dmwt_session10/src/components/AddFruit.js index 39856e3adff269645b4f92bd03d1bb22dd79c265..b0c5f020376e6f0016a7f38fe8e9447b5c9f7bb0 100644 --- a/dmwt_session10/src/components/AddFruit.js +++ b/dmwt_session10/src/components/AddFruit.js @@ -36,14 +36,14 @@ const AddFruit = () => { if (response.status === 409) { const errorData = await response.json(); - console.error("Fruit already added"); + console.error("Frucht schon vorhanden"); setError(errorData.error); return ; } if (!response.ok) { const errorData = await response.json(); - setError(errorData.error || 'Failed to add fruit'); + setError(errorData.error || 'Fehler beim hinzufügen'); return; } diff --git a/dmwt_session10/src/components/FruitList.js b/dmwt_session10/src/components/FruitList.js index 6e3f4acceb12488a54d893bca2b64c2567d73831..efc391d20c330c1f810aa9d400dd6930d4c814cd 100644 --- a/dmwt_session10/src/components/FruitList.js +++ b/dmwt_session10/src/components/FruitList.js @@ -5,20 +5,22 @@ const fetcher = url => fetch(url).then(res => res.json()); const FruitList = () => { const { data: fruit, error, mutate } = useSWR('/api/list-fruit', fetcher, { - revalidateOnFocus: false, - revalidateOnReconnect: false, + refreshInterval: 2000, }); const handleDelete = async (id) => { + const updatedFruits = fruit.filter(item => item.id !== id); + mutate(updatedFruits, false); + const response = await fetch(`/api/delete-fruit?id=${id}`, { method: 'DELETE', }); if (!response.ok) { console.error('Failed to delete fruit'); + mutate(); return; } - mutate(); }; diff --git a/dmwt_session10/src/components/Navbar.js b/dmwt_session10/src/components/Navbar.js index 1baaa40456e4d5d298ca1a2641fd5067f83de5c3..44feccb100ffbe4518e5a4adcb4dabfa03470abd 100644 --- a/dmwt_session10/src/components/Navbar.js +++ b/dmwt_session10/src/components/Navbar.js @@ -16,9 +16,9 @@ const Navbar = () => { </Link> </li> <li className="navItem"> - <Link href="/food" legacyBehavior> - <a className={`navLink ${router.pathname === '/food' ? 'active' : ''}`}> - Food + <Link href="/fruit" legacyBehavior> + <a className={`navLink ${router.pathname === '/fruit' ? 'active' : ''}`}> + Fruit </a> </Link> </li> diff --git a/dmwt_session10/src/pages/API/add-fruit.js b/dmwt_session10/src/pages/API/add-fruit.js index e3f08c61d845cf063e69b9754041096c965692e9..8e2f33d60e349d910d029e82886eb8a472b48cd3 100644 --- a/dmwt_session10/src/pages/API/add-fruit.js +++ b/dmwt_session10/src/pages/API/add-fruit.js @@ -13,16 +13,16 @@ export default async function handler(request, response) { } const existingFruit = await sql` - SELECT * FROM fruit WHERE "German Name" = ${germanName}; + SELECT * FROM essen WHERE "German Name" = ${germanName}; `; if (existingFruit.rows.length > 0) { - return response.status(409).json({ error: 'Fruit already added '}); + return response.status(409).json({ error: 'Frucht schon vorhanden'}); } const result = await sql` - INSERT INTO fruit ("German Name", "Latin Name", Color, Origin, Calories) + INSERT INTO essen ("German Name", "Latin Name", Color, Origin, Calories) VALUES (${germanName}, ${latinName}, ${color}, ${origin}, ${calories}) RETURNING id, "German Name", "Latin Name", Color, Origin, Calories; `; diff --git a/dmwt_session10/src/pages/API/delete-fruit.js b/dmwt_session10/src/pages/API/delete-fruit.js index 6c539e09e0a2f04d443b4771d368281f31a8ac2d..f3c371a739bcbcb18effb10455f2121180e80a0b 100644 --- a/dmwt_session10/src/pages/API/delete-fruit.js +++ b/dmwt_session10/src/pages/API/delete-fruit.js @@ -12,7 +12,7 @@ export default async function handler(request, response) { } try { - const result = await sql`DELETE FROM fruit WHERE id = ${id} RETURNING *;`; + const result = await sql`DELETE FROM essen WHERE id = ${id} RETURNING *;`; if (result.count === 0) { return response.status(404).json({ error: 'Fruit not found' }); diff --git a/dmwt_session10/src/pages/API/fruit-table.js b/dmwt_session10/src/pages/API/fruit-table.js index a0f15a7ab192b857f250b6d41aca5b12f816a861..ad11130b85d07a16ab3ef6fb1b50584b57fc5f69 100644 --- a/dmwt_session10/src/pages/API/fruit-table.js +++ b/dmwt_session10/src/pages/API/fruit-table.js @@ -3,7 +3,7 @@ import { sql } from '@vercel/postgres'; export default async function handler(request, response) { try { const result = await sql` - CREATE TABLE IF NOT EXISTS fruit ( + CREATE TABLE IF NOT EXISTS essen ( id SERIAL PRIMARY KEY, "German Name" VARCHAR(255), diff --git a/dmwt_session10/src/pages/API/list-fruit.js b/dmwt_session10/src/pages/API/list-fruit.js index 56173f2ea8a694eaa24132ce3b2caef791658787..2a942edd2f51b2da914d625154c473e345216ef5 100644 --- a/dmwt_session10/src/pages/API/list-fruit.js +++ b/dmwt_session10/src/pages/API/list-fruit.js @@ -6,7 +6,7 @@ export default async function handler(request, response) { } try { - const { rows: fruit } = await sql`SELECT id, "German Name", "Latin Name", Color, Origin, Calories FROM fruit;`; + const { rows: fruit } = await sql`SELECT id, "German Name", "Latin Name", Color, Origin, Calories FROM essen;`; return response.status(200).json(fruit); } catch (error) { console.error('Error during request processing:', error); diff --git a/dmwt_session10/src/pages/food.js b/dmwt_session10/src/pages/fruit.js similarity index 100% rename from dmwt_session10/src/pages/food.js rename to dmwt_session10/src/pages/fruit.js