diff --git a/controller/users.js b/controller/users.js new file mode 100644 index 0000000..06d51c5 --- /dev/null +++ b/controller/users.js @@ -0,0 +1,55 @@ +const users = require('../data/index') +let usersLength = users.length + +const list = (req,res) => { + res.json(users) +} + +const show = (req,res) => { + const {id} = req.params + const foundUser = users.find((user) => user.id == id) + res.json(foundUser) +} + +const create = (req, res) => { + const {body} = req + const newUser = { + "id": usersLength++, + ... body + } + users.push(newUser) + res.json(newUser) +} + +const update = (req,res) => { + const {body} = req + const {id} = req.params + const user = users.find((user) => user.id == id) + const updatedUser = { + ...body, + } + + users.splice(updatedUser, 1) + users.push(updatedUser) + res.json(updatedUser) +} + +const erase = (req,res) => { + const {body} = req + const {id} = req.params + const user = users.find((user) => user.id == id) + const deletedUser = { + ...body, + } + + users.splice(deletedUser, 1) + res.json(users) +} + +module.exports = { + list, + show, + create, + update, + erase +} \ No newline at end of file diff --git a/index.js b/index.js index e9537d2..827b878 100644 --- a/index.js +++ b/index.js @@ -1,9 +1,13 @@ const express = require('express') +const usersRouter = require('./routes/users') const app = express() -const port = process.env.PORT || 4000 +const PORT = process.env.PORT || 4000 -app.get('/', (req, res) => res.send('default route')) -app.listen(port, () => { - console.log('app is listening on:', port) +app.use(express()) +app.use(express.json()) +app.use('/', usersRouter) + +app.listen(PORT, () => { + console.log(`App is listening on port: ${PORT}`) }) \ No newline at end of file diff --git a/routes/users.js b/routes/users.js new file mode 100644 index 0000000..439e391 --- /dev/null +++ b/routes/users.js @@ -0,0 +1,20 @@ +const express = require('express') +const usersController = require('../controller/users') +const router = express.Router() + +// Get all users +router.get('/users', usersController.list) + +// Get one user +router.get('/users/:id', usersController.show) + +// Create a new user +router.post('/users', usersController.create) + +// Update an existing user +router.put('/users/:id', usersController.update) + +// Delete a user +router.delete('/users/:id', usersController.erase) + +module.exports = router \ No newline at end of file