From e4147dd8020896f1b69cdc634b42d21e89539453 Mon Sep 17 00:00:00 2001 From: GRZ4NA Date: Sun, 3 Oct 2021 18:55:12 +0200 Subject: [PATCH] createEvent method --- src/utils/APIClient.js | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/utils/APIClient.js b/src/utils/APIClient.js index 811e40a..f95d9c6 100644 --- a/src/utils/APIClient.js +++ b/src/utils/APIClient.js @@ -18,7 +18,18 @@ export class APIClient { return events.find((e) => e.id === id) ?? null; } async createEvent(data) { - return; - // Not finished + //Check types + if (typeof data !== "object") throw new TypeError("Data object is required"); + if (typeof data.name !== "string") throw new TypeError("Name property must be a string"); + if (typeof data.time !== "number") throw new TypeError("Invalid date format"); + if (typeof data.created !== "object") throw new TypeError("created property must be present"); + if (typeof data.created.time !== "number") throw new TypeError("Invalid created date format"); + if (typeof data.lat !== "number") throw new TypeError("Invalid lattitude"); + if (typeof data.lon !== "number") throw new TypeError("Invalid longtitude"); + + //Make POST request + const rq = await axios.post(`${this.#dbUrl}/api/createEvent`, data); + if (rq.status !== 200) throw new Error(`Request failed with status code ${rq.status}: ${rq.statusText}`); + return rq; } }