From 1b7e16784d81a59775eec5a8d67ee54568aee452 Mon Sep 17 00:00:00 2001 From: JasonCornish5 Date: Sun, 23 May 2021 21:47:21 -0500 Subject: [PATCH] Final Commit --- controllers/users.js | 55 ++++++++++++++++++++++++++++++++++++++++++++ index.js | 8 +++++-- routes/users.js | 14 +++++++++++ 3 files changed, 75 insertions(+), 2 deletions(-) create mode 100644 controllers/users.js create mode 100644 routes/users.js diff --git a/controllers/users.js b/controllers/users.js new file mode 100644 index 0000000..0d7dcaa --- /dev/null +++ b/controllers/users.js @@ -0,0 +1,55 @@ +const users = require("../data/index.js"); +const sampleUser = require('../data/sampleUser.js'); + +function getAllUsers (req, res) { + if (users.length == 0) { + res.status(404).send({error : "You've deleted every user? Seriously?"}) + } else { + res.json(users); + } + + +} + +function getUser (req, res) { + let userFound = 0; + for (let x = 0; x < users.length; x++) { + if (users[x].id == req.params.id) { + res.json(users[x]); + return userFound = 1; + } + } + if (userFound != true) { + res.status(400).send({error : "This user doesnt exist."}) + } +} + +function postUser (req, res) { + var userId = users.length + 1; + users.push(sampleUser); + users[userId - 1].id = userId; + res.json(users[userId - 1]); + +} + +function putUser (req, res) { + if(users[req.params.id -1] == null) { + res.status(400).send({error : "This user doesnt exist"}) + } else { + users[req.params.id - 1].id = sampleUser.id; + res.json(users[req.params.id - 1]); + } + +} + +function deleteUser (req, res) { + if (users[req.params.id - 1] == null) { + res.status(400).send({error : "This user doesnt exist."}); + } else { + users.splice(req.params.id - 1, 1); + res.json(users); + } + +} + +module.exports = {getAllUsers, getUser, postUser, putUser, deleteUser}; \ No newline at end of file diff --git a/index.js b/index.js index e9537d2..9d14d9d 100644 --- a/index.js +++ b/index.js @@ -1,8 +1,12 @@ const express = require('express') -const app = express() +const usersRouter = require('./routes/users.js'); +const app = express(); +app.use(express.json()); + + const port = process.env.PORT || 4000 -app.get('/', (req, res) => res.send('default route')) +app.use(usersRouter) app.listen(port, () => { console.log('app is listening on:', port) diff --git a/routes/users.js b/routes/users.js new file mode 100644 index 0000000..553a78d --- /dev/null +++ b/routes/users.js @@ -0,0 +1,14 @@ +const express = require('express') +const usersRouter = express.Router(); +const usersController = require('../controllers/users.js'); + +usersRouter.get('/users', usersController.getAllUsers); +usersRouter.get('/users/:id', usersController.getUser); +usersRouter.post('/users', usersController.postUser); +usersRouter.put('/users/:id', usersController.putUser); +usersRouter.delete('/users/:id', usersController.deleteUser); + + + + +module.exports = usersRouter; \ No newline at end of file