Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Controllers & routers complete with error handling
  • Loading branch information
bobbyg211 committed Jan 13, 2021
commit 7abe9473ac01b1a184c5306775836be2db7539c4
52 changes: 52 additions & 0 deletions controllers/users.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
const users = require("../data/index.js");
const sampleUser = require("../data/sampleUser.js");

const listUsers = (req, res) => {
res.json(users);
};

const showUser = (req, res) => {
let id = req.params.id - 1;
if (users[id]) {
res.json(users[id]);
} else {
res.status(404).send("User not found.");
}
};

const createUser = (req, res) => {
let counter = users.length;
let newUser = sampleUser;
newUser.id = counter + 1;
users.push(newUser);
res.json(users[newUser.id - 1]);
};

const updateUser = (req, res) => {
let id = req.params.id - 1;
if (users[id]) {
users[req.params.id - 1] = sampleUser;
users[req.params.id - 1].id = req.params.id;
res.json(users[req.params.id - 1]);
} else {
res.status(400).send("User not found.");
}
};

const deleteUser = (req, res) => {
let id = req.params.id - 1;
if (users[id]) {
users.splice(req.params.id - 1, 1);
res.send(users);
} else {
res.status(400).send("User not found.");
}
};

module.exports = {
listUsers,
showUser,
createUser,
updateUser,
deleteUser,
};
18 changes: 8 additions & 10 deletions routes/users.js
Original file line number Diff line number Diff line change
@@ -1,17 +1,15 @@
const express = require("express");
const router = express.Router();
const users = require("../data/index.js");
const usersController = require("../controllers/users.js");

router.get("/users", (req, res) => {
return res.json(users);
});
router.get("/users", usersController.listUsers);

router.get("/users/:id", (req, res) => {
let id = req.params.id - 1;
return res.json(users[id]);
});
router.get("/users/:id", usersController.showUser);

// const vehiclesController = require("../controllers/vehicles.js");
// router.get("/vehicles", vehiclesController.list);
router.post("/users", usersController.createUser);

router.put("/users/:id", usersController.updateUser);

router.delete("/users/:id", usersController.deleteUser);

module.exports = router;