From 1e85a8423dd8321495358c91f1b91a2b3442cd8d Mon Sep 17 00:00:00 2001 From: rui hildt Date: Fri, 28 Aug 2020 11:50:22 +0200 Subject: [PATCH] Implement availibility to the backend --- src/screens/Availability.js | 122 ++++++++++++++++++++++++------------ src/screens/Schedule.js | 1 - 2 files changed, 82 insertions(+), 41 deletions(-) diff --git a/src/screens/Availability.js b/src/screens/Availability.js index 74456df..4e3bc08 100644 --- a/src/screens/Availability.js +++ b/src/screens/Availability.js @@ -1,5 +1,5 @@ import React, { useState } from 'react'; -import { Redirect } from 'react-router-dom'; +import { Redirect, useHistory } from 'react-router-dom'; import { Panel, Form, @@ -20,7 +20,6 @@ import dtToUTC from '../helpers/datetimeToUTC'; import { backend } from '../helpers/http-common'; import './styles/Availability.less'; import './styles/layout.less'; - // // DEV possibleDates // const possibleDates = [ // { @@ -52,6 +51,13 @@ export default function Availability({ earliest: currentUser.earliest_time, latest: currentUser.latest_time, }); + const [status, setStatus] = useState({ + error: null, + success: null, + message: '', + }); + + const history = useHistory(); const handleClear = () => { setAvailability([]); @@ -68,8 +74,8 @@ export default function Availability({ }; const handleSubmit = () => { - // Create list of events to post - const events = availability.map((event) => { + // Create a list of availability to post + const availabilityList = availability.map((event) => { // Format start date to availability const selectedDate = event.start.toISOString().substring(0, 10); // Find the date id @@ -87,25 +93,32 @@ export default function Availability({ }; }); - backend - .post('availability', events[0]) - .then((response) => { - console.log(response) + // Create availability post request + const postAvailability = (data) => { + return backend.post('/availability', data); + }; + + const requests = availabilityList.map((event) => + postAvailability(event), + ); + + Promise.all(requests) + .then(function (results) { + // Add confirmation message + setStatus({ + success: true, + error: false, + message: 'Your availability has been added to the meeting.', + }); }) .catch((error) => { - console.log(error) + setStatus({ + error: true, + success: false, + message: + "Your availability couldn't be added to the meeting.", + }); }); - - // // Create availability post request - // const postAvailability = (data) => { - // return backend.post('/availability', data); - // }; - - // const requests = events.map((event) => postAvailability(event)); - - // Promise.all(requests).then(function (results) { - // console.log('RESULTS: ', results); - // }); }; const handleSelectTimezone = (value, item, event) => { @@ -163,26 +176,55 @@ export default function Availability({ />
- - - - + {!status.success && ( + + + + + )} + + {status.success && ( + + + + + )} + {(status.error || status.success) && ( + + )}
diff --git a/src/screens/Schedule.js b/src/screens/Schedule.js index 631b50e..a761e6d 100644 --- a/src/screens/Schedule.js +++ b/src/screens/Schedule.js @@ -163,7 +163,6 @@ export default function Schedule({ backend .post('/participants', data) .then((response) => { - console.log(response); addPossibleDates({ meeting_id: response.data.meeting_id }); }) .catch((error) => {