From 04fee7b721a771d7eb7fe0ec5e3bcebc10d5f5d4 Mon Sep 17 00:00:00 2001 From: TaxisTim-Luca <Tim-Luca.Taxis@Student.Reutlingen-University.DE> Date: Sun, 16 Jun 2024 17:43:15 +0200 Subject: [PATCH] added automatic Fruit List --- dmwt_session10/src/components/FruitList.js | 8 +++++--- dmwt_session10/src/components/Navbar.js | 6 +++--- dmwt_session10/src/pages/API/add-fruit.js | 4 ++-- dmwt_session10/src/pages/API/delete-fruit.js | 2 +- dmwt_session10/src/pages/API/fruit-table.js | 2 +- dmwt_session10/src/pages/API/list-fruit.js | 2 +- dmwt_session10/src/pages/{food.js => fruit.js} | 0 7 files changed, 13 insertions(+), 11 deletions(-) rename dmwt_session10/src/pages/{food.js => fruit.js} (100%) diff --git a/dmwt_session10/src/components/FruitList.js b/dmwt_session10/src/components/FruitList.js index 6e3f4ac..efc391d 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 1baaa40..44feccb 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 1986015..8e2f33d 100644 --- a/dmwt_session10/src/pages/API/add-fruit.js +++ b/dmwt_session10/src/pages/API/add-fruit.js @@ -13,7 +13,7 @@ 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) { @@ -22,7 +22,7 @@ export default async function handler(request, response) { } 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 6c539e0..f3c371a 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 a0f15a7..ad11130 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 56173f2..2a942ed 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 -- GitLab