diff --git a/backend/index.js b/backend/index.js index 3503a6e..2c42dec 100644 --- a/backend/index.js +++ b/backend/index.js @@ -5,50 +5,52 @@ const port = process.env.PORT || 3000; const { MONGO_URI } = require("./config"); const mongoose = require("mongoose"); const events = require("./models/events"); -const bodyParser = require('body-parser') -app.use( bodyParser.json() ); // to support JSON-encoded bodies -app.use(bodyParser.urlencoded({ // to support URL-encoded bodies - extended: true -})); +const bodyParser = require("body-parser"); +app.use(bodyParser.json()); // to support JSON-encoded bodies app.use( - cors({ - origin: "*", - }) + bodyParser.urlencoded({ + // to support URL-encoded bodies + extended: true, + }) +); +app.use( + cors({ + origin: "*", + }) ); mongoose - .connect(MONGO_URI, { - useNewUrlParser: true, - useUnifiedTopology: true, - }) - .then(() => console.log("connected")) - .catch((err) => console.log(err)); + .connect(MONGO_URI, { + useNewUrlParser: true, + useUnifiedTopology: true, + }) + .then(() => console.log("connected")) + .catch((err) => console.log(err)); app.get("/api/getEvents", async (req, res) => { - try { - const event = await events.find(); - if (!event) throw Error("something went wrong"); - console.log(event); - res.status(200).json(event); - } catch (err) { - res.status(400).json({ msg: err }); - } + try { + const event = await events.find(); + if (!event) throw Error("something went wrong"); + console.log(event); + res.status(200).json(event); + } catch (err) { + res.status(400).json({ msg: err }); + } }); app.post("/api/createEvent", (req, res) => { let data = { - name:req.body.name, - type:req.body.type, - time:req.body.time, - created:{time:Date.now()}, - lat:req.body.lat, - lot:req.body.lat - } - events.create(data, (err) => { - if (err) return res.status(400).json({ msg: err }); - // saved! - res.status(200).json("ok"); - }); - + name: req.body.name, + type: req.body.type, + time: req.body.time, + created: { time: Date.now() }, + lat: req.body.lat, + lon: req.body.lon, + }; + events.create(data, (err) => { + if (err) return res.status(400).json({ msg: err }); + // saved! + res.status(200).json("ok"); + }); }); app.listen(port, () => { - console.log(`Example app listening at http://localhost:${port}`); + console.log(`Example app listening at http://localhost:${port}`); }); diff --git a/src/pages/CreateEvent/index.js b/src/pages/CreateEvent/index.js index 73b0ce4..44e994d 100644 --- a/src/pages/CreateEvent/index.js +++ b/src/pages/CreateEvent/index.js @@ -1,84 +1,105 @@ -import { Field, Form, Formik } from "formik"; +import { useFormik } from "formik"; import { useRef, useState } from "react"; import { Stack } from "react-bootstrap"; import { Map } from "../../components/Map"; import { searchLocation } from "../../utils/map/searchLocation"; import { fromLonLat, toLonLat } from "ol/proj"; import { useHistory } from "react-router"; +import { API_CLIENT } from "../../constants"; import styles from "./index.module.scss"; export const CreateEvent = () => { const mapSearchBox = useRef(null); + const mapSearchBtn = useRef(null); let [center, setCenter] = useState(fromLonLat([18.667, 54.35])); const [zoom, setZoom] = useState(15); const history = useHistory(); + const formik = useFormik({ + initialValues: { + name: "", + type: 0, + time: "0", + date: "0", + description: "", + }, + onSubmit: (data) => { + const cords = toLonLat([center[0], center[1]]); + const rqObj = { + name: data.name, + type: parseInt(data.type), + description: data.description, + lon: cords[0], + lat: cords[1], + time: new Date(`${data.date} ${data.time}`).getTime(), + }; + API_CLIENT.createEvent(rqObj); + history.push("/"); + }, + }); return (