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