From 5d47e64d6afcc1aa1cac64bdd9aa5fc668bf8048 Mon Sep 17 00:00:00 2001 From: Hajar RAHMOUNI Date: Thu, 4 Jan 2024 20:13:04 +0100 Subject: [PATCH] control of dates and api call in fetch service --- pwa/app/components/bar-chart/form.jsx | 6 ++++++ pwa/app/help/fetch-service.js | 10 +++++++++- pwa/app/page.jsx | 12 ++++-------- 3 files changed, 19 insertions(+), 9 deletions(-) diff --git a/pwa/app/components/bar-chart/form.jsx b/pwa/app/components/bar-chart/form.jsx index 610f403..7771f23 100644 --- a/pwa/app/components/bar-chart/form.jsx +++ b/pwa/app/components/bar-chart/form.jsx @@ -8,6 +8,12 @@ const DataForm = ({ onSubmit }) => { const handleSubmit = (event) => { event.preventDefault(); + + if (startDate === endDate) { + alert("La date de début ne doit pas être égale à la date de fin."); + return; + } + onSubmit({ startDate, endDate, granularity }); }; diff --git a/pwa/app/help/fetch-service.js b/pwa/app/help/fetch-service.js index d3b8c70..72a5f66 100644 --- a/pwa/app/help/fetch-service.js +++ b/pwa/app/help/fetch-service.js @@ -1,3 +1,4 @@ +import config from '../../config.js'; /** * @param {number} year */ @@ -28,7 +29,14 @@ async function getDonutContent(year) { ); }); } +async function fetchBarChartData(formData) { + const url = `${config.apiUrl}/bar-chart/${formData.startDate}/${formData.endDate}/${formData.granularity}?page=1`; + const response = await fetch(url); + const data = await response.json(); + return data; +} export default { - getDonutContent + getDonutContent, + fetchBarChartData }; diff --git a/pwa/app/page.jsx b/pwa/app/page.jsx index bd347f8..569943e 100644 --- a/pwa/app/page.jsx +++ b/pwa/app/page.jsx @@ -1,7 +1,6 @@ "use client"; import React, {useEffect, useState} from "react"; -import config from '../config.js'; import FetchService from "./help/fetch-service"; import Donut from "./components/donut"; @@ -14,14 +13,11 @@ export default function Page() { const [chartData, setChartData] = useState([]); const [isLoading, setIsLoading] = useState(false); const Loader = () =>
Loading...
; - const handleFormSubmit = async (formData) => { - setIsLoading(true); - const url = `${config.apiUrl}/bar-chart/${formData.startDate}/${formData.endDate}/${formData.granularity}?page=1`; - const response = await fetch(url); const data = await response.json(); - console.log(data); - setChartData(data); - setIsLoading(false); + setIsLoading(true); + const data = await FetchService.fetchBarChartData(formData); + setChartData(data); + setIsLoading(false); }; useEffect(() => { -- GitLab