From 7cfa5ee9b01ca9fe33ee847ef770a13c84ce2bd0 Mon Sep 17 00:00:00 2001 From: rahulpra567 Date: Wed, 4 May 2022 17:23:36 +0530 Subject: [PATCH] Add files via upload --- controllers/todoControllers.js | 84 ++++++++++++++++++++++++++++++++++ controllers/userControllers.js | 14 ++++++ helpers/common.js | 23 ++++++++++ model/todo.js | 20 ++++++++ model/user.js | 26 +++++++++++ routes/authRoutes.js | 9 ++++ routes/index.js | 11 +++++ routes/todoRoutes.js | 15 ++++++ routes/todos.js | 34 ++++++++++++++ 9 files changed, 236 insertions(+) create mode 100644 controllers/todoControllers.js create mode 100644 controllers/userControllers.js create mode 100644 helpers/common.js create mode 100644 model/todo.js create mode 100644 model/user.js create mode 100644 routes/authRoutes.js create mode 100644 routes/index.js create mode 100644 routes/todoRoutes.js create mode 100644 routes/todos.js diff --git a/controllers/todoControllers.js b/controllers/todoControllers.js new file mode 100644 index 0000000..ce7e218 --- /dev/null +++ b/controllers/todoControllers.js @@ -0,0 +1,84 @@ +const todoService = require('../services/todoService'); +const Common = require('../helpers/common'); +exports.createTodo = async (req, res,next) => { + try { + let result = await todoService.saveTodo(req.body); + return Common.sendSuccessResponse(res, 200, "successfully", ''); + } + catch(err) { + return Common.sendErrorResponse(res, 500, "Failed", err); + } +} + +exports.getTodos = async(req, res,next) => { + try { + let todos = await todoService.getTodos(); + return Common.sendSuccessResponse(res, 200, "Success", todos); + } + catch(err) { + return Common.sendErrorResponse(res, 500, "Failed", err); + } +} + + +exports.getUpdate = async(req, res,next) => { + + try { + let updateDataObj = {}; + let fieldArray = ['title', 'description']; + let id = Number(req.params.id); + let data = req.body; + + let todo = await todoService.getTodoById(id); + + if(!todo) { + return Common.sendErrorResponse(res, 404, "todo is not found", ''); + } + + fieldArray.forEach(field => { + updateDataObj[field] = data[field]; + }); + + const updateTodo = await todoService.updateTodo(updateDataObj, todo._id) + if(updateTodo['modifiedCount'] > 0) { + return Common.sendSuccessResponse(res, 200, "todo is updated successfully", todos); + } + else { + return Common.sendErrorResponse(res, 500, "todo is not updated successfully", ''); + } + + } + catch(err) { + return Common.sendErrorResponse(res, 500, "todo is not updated successfully", ''); + } +} + + +exports.getDelete = async(req, res,next) => { + + try { + let id = Number(req.params.id); + + + let todo = await todoService.getTodoById(id); + + if(!todo) { + return Common.sendErrorResponse(res, 404, "todo is not found", ''); + } + + const deleteTodo = await todoService.deleteTodo(todo._id); + if(deleteTodo['deletedCount'] > 0) { + return Common.sendSuccessResponse(res, 200, "todo is delete successfully", ''); + } + else { + return Common.sendErrorResponse(res, 500, "todo is not delete successfully", ''); + } + + } + catch(err) { + return Common.sendErrorResponse(res, 500, "todo is not delete successfully", ''); + } +} + + + diff --git a/controllers/userControllers.js b/controllers/userControllers.js new file mode 100644 index 0000000..e326ce2 --- /dev/null +++ b/controllers/userControllers.js @@ -0,0 +1,14 @@ +const bcrypt = require('bcrypt'); +const Common = require('../helpers/common'); +const userService = require('../services/userService'); + +exports.register = async(req, res, next) => { + try { + req.body.password = await bcrypt(req.body.password , 10); + console.log( req.body.password); + userService.saveUser(req.body); + } + catch(err) { + return Common.sendErrorResponse(res, 500, "user is not register successfully", ''); + } +} \ No newline at end of file diff --git a/helpers/common.js b/helpers/common.js new file mode 100644 index 0000000..8da8dd1 --- /dev/null +++ b/helpers/common.js @@ -0,0 +1,23 @@ +const { response } = require("express"); + +exports.sendSuccessResponse = (res, code, message, data="") => { + let response = {}; + + response['message'] = message != '' ? message : ""; + response['data'] = data != '' ? data : ""; + let statusCode = code != '' ? code : 200; + + return res.status(statusCode).json(response); +} + +exports.sendErrorResponse = (res, code, message, error) => { + let response = {}; + + let statusCode = code != '' ? code : 200; + + response['message'] = message != '' ? message : ""; + response['error'] = error != '' ? error : ""; + + return res.status(statusCode).json(response); +} + diff --git a/model/todo.js b/model/todo.js new file mode 100644 index 0000000..2584d2e --- /dev/null +++ b/model/todo.js @@ -0,0 +1,20 @@ +const mongoose = require('mongoose'); + + +const todoSchema = mongoose.Schema({ + id: { + type: Number, + unique: true, + required: true + }, + title: { + type: String, + required: true + }, + description: { + type: String, + required: true + } +}); + +module.exports = mongoose.model('Todo', todoSchema); \ No newline at end of file diff --git a/model/user.js b/model/user.js new file mode 100644 index 0000000..f326e53 --- /dev/null +++ b/model/user.js @@ -0,0 +1,26 @@ +const mongoose = require('mongoose'); + +const userSchema = mongoose.Schema({ + firstname: { + type: String, + required: true, + }, + lastname: { + type: String, + required: true, + }, + email: { + type: String, + required: true, + unique: true + }, + password: { + type: String, + required: true + }, + status: { + type: Boolean + } +}); + +module.exports = mongoose.model('User', userSchema); \ No newline at end of file diff --git a/routes/authRoutes.js b/routes/authRoutes.js new file mode 100644 index 0000000..207f264 --- /dev/null +++ b/routes/authRoutes.js @@ -0,0 +1,9 @@ +const express = require('express'); +const router = express.Router(); + + +const userControllers = require('../controllers/userControllers'); + +router.post('/register', userControllers.register); + +module.exports = router; \ No newline at end of file diff --git a/routes/index.js b/routes/index.js new file mode 100644 index 0000000..ac59b1b --- /dev/null +++ b/routes/index.js @@ -0,0 +1,11 @@ +// const todoRouter = require('./todoRoutes'); + +// module.exports = { +// '/todo' : todoRouter +// } + +const authRouter = require('../routes/authRoutes') +exports = { + '/' : authRouter +} + diff --git a/routes/todoRoutes.js b/routes/todoRoutes.js new file mode 100644 index 0000000..328de70 --- /dev/null +++ b/routes/todoRoutes.js @@ -0,0 +1,15 @@ +const express = require('express'); +const router = express.Router(); +const todoController = require('../controllers/todoControllers.js'); +router.get('/', todoController.getTodos ); +router.post('/create-todo', todoController.createTodo); +router.put('/:id', todoController.getUpdate); +router.delete('/:id/delete', todoController.getDelete); +// router.post('/create-todo', (req, res, next) => { +// console.log('hello'); +// } ); + +// router.put('/:id', (req, res, next) => { +// console.log('id'); +// }); +module.exports = router; \ No newline at end of file diff --git a/routes/todos.js b/routes/todos.js new file mode 100644 index 0000000..a82b87f --- /dev/null +++ b/routes/todos.js @@ -0,0 +1,34 @@ +// const express = require("express"); +// const router = express.Router(); +// const idLength = 8; + +// router.get('/', (req,res) => { + +// let todos = req.app.db.get('todos').value(); + +// return res.send(todos); + +// }); + +// router.get('/:id', (req,res) => { + +// let todo = req.app.db.get('todos').find({ +// id: req.params.id +// }).value(); + +// if(!todo){ + +// res.sendStatus(404); + +// return res.send({ +// message: "Todo cannot be found", +// internal_code: "Invalid id" +// }); + +// }; + +// return res.send(todo); + +// }); + +// //module.exports = router; \ No newline at end of file