From fbc59634d46b15b696b7f2f60acd69134063623f Mon Sep 17 00:00:00 2001 From: Georgia Adams Date: Thu, 18 Mar 2021 11:56:42 +0100 Subject: [PATCH] challenge done --- models/Todo.js | 20 ++++++++------ routes/todoRoute.js | 17 ++++++------ todosController/todos.js | 59 +++++++++++++++++++--------------------- 3 files changed, 47 insertions(+), 49 deletions(-) diff --git a/models/Todo.js b/models/Todo.js index a97880d..71dd616 100644 --- a/models/Todo.js +++ b/models/Todo.js @@ -1,14 +1,16 @@ -const mongoose = require('mongoose'); +const mongoose = require("mongoose"); const Schema = mongoose.Schema; -let Todo = new Schema({ - title: { - type: String +const TodoSchema = new Schema( + { + title: { + type: String, + }, + body: { + type: String, + }, }, - body: { - type: String - } -},{ timestamps: true } + { timestamps: true } ); -module.exports = mongoose.model('Todo', Todo); \ No newline at end of file +module.exports = mongoose.model("Todo", TodoSchema); diff --git a/routes/todoRoute.js b/routes/todoRoute.js index 57ea4e4..bf953fa 100644 --- a/routes/todoRoute.js +++ b/routes/todoRoute.js @@ -1,12 +1,11 @@ -const express = require('express'); -const TodoController = require('../todosController/todos'); - +const express = require("express"); +const TodoController = require("../todosController/todos"); const router = express.Router(); -router.get('/todos', TodoController.getAllTodos); -router.get('/todos/:id', TodoController.getTodo); -router.post('/todos', TodoController.createTodo); -router.put('/todos/:id', TodoController.updateTodo); -router.delete('/todos/:id', TodoController.deleteTodo); +router.get("/todos", TodoController.getAllTodos); +router.get("/todos/:id", TodoController.getTodo); +router.post("/todos", TodoController.createTodo); +router.put("/todos/:id", TodoController.updateTodo); +router.delete("/todos/:id", TodoController.deleteTodo); -module.exports = router; \ No newline at end of file +module.exports = router; diff --git a/todosController/todos.js b/todosController/todos.js index b38fcfc..0b7b376 100644 --- a/todosController/todos.js +++ b/todosController/todos.js @@ -1,13 +1,12 @@ -const express = require('express'); +const express = require("express"); -const mongoose = require('mongoose'); -const {ObjectId} = mongoose.Types; +const mongoose = require("mongoose"); +const { ObjectId } = mongoose.Types; // Require Todo model in our routes module -let Todo = require('../models/Todo'); +const Todo = require("../models/Todo"); class TodosController { - async getAllTodos(req, res) { try { const todos = await Todo.find(); @@ -17,12 +16,12 @@ class TodosController { } } - async getTodo(req, res){ - const {id} = req.params; - if(!ObjectId.isValid(id) && !id.match(/^[a-fA-F0-9]{24}$/)){ + async getTodo(req, res) { + const { id } = req.params; + if (!ObjectId.isValid(id) && !id.match(/^[a-fA-F0-9]{24}$/)) { return res.status(404).send({ - success: 'false', - message: 'todo does not exist', + success: "false", + message: "todo does not exist", }); } try { @@ -37,8 +36,8 @@ class TodosController { let newTodo = new Todo(req.body); if (!req.body.title) { return res.status(400).send({ - success: 'false', - message: 'title is required', + success: "false", + message: "title is required", }); } try { @@ -46,44 +45,43 @@ class TodosController { res.status(200).json(todo); } catch (error) { res.status(400).send({ - success: 'false', - message: 'Unable to save to database', + success: "false", + message: "Unable to save to database", }); } } - async updateTodo(req, res){ - const {id} = req.params; + async updateTodo(req, res) { + const { id } = req.params; const data = req.body; - if(!ObjectId.isValid(id) && !id.match(/^[a-fA-F0-9]{24}$/)){ + if (!ObjectId.isValid(id) && !id.match(/^[a-fA-F0-9]{24}$/)) { return res.status(404).send({ - success: 'false', - message: 'todo does not exist', + success: "false", + message: "todo does not exist", }); } if (!req.body.title) { return res.status(400).send({ - success: 'false', - message: 'title is required', + success: "false", + message: "title is required", }); } try { - const updated = await Todo.findByIdAndUpdate(id, data, {new:true}); + const updated = await Todo.findByIdAndUpdate(id, data, { new: true }); return res.status(200).json(updated); - } catch (error) { res.json(error); } } - async deleteTodo(req, res){ - const {id} = req.params; - if(!ObjectId.isValid(id) && !id.match(/^[a-fA-F0-9]{24}$/)){ + async deleteTodo(req, res) { + const { id } = req.params; + if (!ObjectId.isValid(id) && !id.match(/^[a-fA-F0-9]{24}$/)) { return res.status(404).send({ - success: 'false', - message: 'todo does not exist', + success: "false", + message: "todo does not exist", }); } try { @@ -91,12 +89,11 @@ class TodosController { return res.status(200).json(deleted); } catch (error) { res.status(400).send({ - success: 'false', - message: 'Unable to delete from database', + success: "false", + message: "Unable to delete from database", }); } } - } const TodoController = new TodosController();