diff --git a/index.js b/index.js index 1afffc2..4db50ae 100644 --- a/index.js +++ b/index.js @@ -65,6 +65,61 @@ app.get("/api/users", (req, res) => { }); }); +app.post("/api/users/:_id/exercises", (req, res) => { + const _id = req.params._id; + const description = req.body.description; + const duration = req.body.duration; + const date = req.body.date ? req.body.date : new Date().toDateString(); + exerciseLogs + .exists({ _id: _id }) + .then((userExists) => { + if (userExists) { + exerciseLogs + .updateOne( + { _id: _id }, + { + $push: { + log: { + description: description, + duration: duration, + date: date, + }, + }, + }, + { runValidators: true } + ) + .then((excLogs) => { + if (excLogs.modifiedCount) { + res.json({ + _id: _id, + description: description, + duration: duration, + date: date, + }); + } else { + res.json(500); + res.json({ + error: `Failed to add exercise logs to database:\n${excLogs}`, + }); + } + }) + .catch((err) => { + res.status(500); + res.json({ + error: `Failed to add exercise logs to database:\n${err}`, + }); + }); + } else { + res.status(403); + res.json({ error: `No user with id: ${_id} exists` }); + } + }) + .catch((err) => { + res.status(500); + res.json({ error: "Failed to check user in database" }); + }); +}); + const listener = app.listen(PORT, () => { console.log("Your app is listening on port " + listener.address().port); });