From 67a0b4dcd1aa1af0f238a487f0aef928c26f102c Mon Sep 17 00:00:00 2001
From: Hannah Holzheu <hh062@hdm-stuttgart.de>
Date: Fri, 15 Dec 2023 21:14:37 +0100
Subject: [PATCH] updated SearchPage and added fetching randomPlants from
 Endpoint #12

---
 .../src/components/PlantDetails.tsx           |  1 +
 growbros-frontend/src/pages/Suche.tsx         | 41 ++++++++++++++++++-
 2 files changed, 40 insertions(+), 2 deletions(-)

diff --git a/growbros-frontend/src/components/PlantDetails.tsx b/growbros-frontend/src/components/PlantDetails.tsx
index 7c6ea0d..a9e21b9 100644
--- a/growbros-frontend/src/components/PlantDetails.tsx
+++ b/growbros-frontend/src/components/PlantDetails.tsx
@@ -92,6 +92,7 @@ function ButtonAddToGarden({ plantId }: any) {
       if (response.status === 201) {
         console.log("Pflanze wurde erfolgreich dem Garten hinzugefügt");
       } else {
+        console.log("Unexpected response status:", response.status);
         setStatus("Pflanze konnte nicht dem Garten hinzugefügt werden");
       }
     } catch (error) {
diff --git a/growbros-frontend/src/pages/Suche.tsx b/growbros-frontend/src/pages/Suche.tsx
index a3f068f..f4fc97b 100644
--- a/growbros-frontend/src/pages/Suche.tsx
+++ b/growbros-frontend/src/pages/Suche.tsx
@@ -1,14 +1,51 @@
 import "font-awesome/css/font-awesome.min.css";
 import "../stylesheets/Suche.css";
 import PlantsOverview from "../components/PlantsOverview";
-import { useState } from "react";
+import { useState, useEffect } from "react";
 import FilterPage from "../components/FilterPage";
 
 function Suche() {
+  const [randomPlants, setRandomPlants] = useState<plant[] | null>(null);
+  const [error, setError] = useState<null | String>(null);
+  const randomPlantsCount: number = 30;
+  const token: String = "";
+
+  const fetchRandomPlants = async () => {
+    try {
+      const response = await fetch(
+        `http://localhost:8080/api/v1/plants/randomPlants/${randomPlantsCount}`,
+        {
+          method: "GET",
+          headers: {
+            "Content-Type": "application/json",
+            Authorization: `Bearer ${token}`,
+          },
+        }
+      );
+      if (response.status == 200) {
+        const data = await response.json();
+        setRandomPlants(data);
+        console.log("Succesfully fetched data");
+      } else {
+        console.log("Unexpected response status:", response.status);
+        setError("Error fetching data");
+      }
+    } catch (error) {
+      console.error("Error", error);
+      setError("Error fetching data");
+    }
+  };
+
+  useEffect(() => {
+    fetchRandomPlants();
+  }, []);
+
   return (
     <>
       <SearchBar />
-      <PlantsOverview />
+      <div>
+        {error ? <div>{error}</div> : <PlantsOverview plants={randomPlants} />}
+      </div>
     </>
   );
 }
-- 
GitLab