Skip to content
Snippets Groups Projects
Commit 8e767b7d authored by Tim-Luca Taxis's avatar Tim-Luca Taxis
Browse files

Merge branch 'master' into 'main'

added automatic FruitList

See merge request !8
parents d7a20f2a 04fee7b7
No related branches found
No related tags found
1 merge request!8added automatic FruitList
......@@ -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;
}
......
......@@ -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();
};
......
......@@ -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>
......
......@@ -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;
`;
......
......@@ -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' });
......
......@@ -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),
......
......@@ -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);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment