Add users endpoints with queries

This commit is contained in:
2019-08-01 09:42:25 +02:00
parent d97221e522
commit ccc7a0bfb0
5 changed files with 67 additions and 0 deletions

View File

@@ -4,6 +4,8 @@ module.exports = {
add,
findBy,
findById,
update,
remove
};
function findBy(filter) {
@@ -23,3 +25,16 @@ function findById(id) {
.first()
.select('id', 'email', 'username');
}
async function update(id, changes) {
await db('users')
.where({ id })
.update(changes, '*');
return findById(id);
}
function remove(id) {
return db('users')
.where({ id })
.del();
}

View File

@@ -0,0 +1,32 @@
const router = require('express').Router();
const { authenticate } = require('../auth/authenticate');
const Users = require('../users/usersModel');
router.get('/:id', authenticate, (req, res) => {
Users.findById(req.params.id)
.then(users => {
res.status(200).json(users);
})
.catch(err => res.send(err));
});
router.put('/:id', authenticate, async (req, res) => {
Users.update(req.params.id, req.body)
.then( user => {
if (user) {
res.status(200).json(user);
} else {
res.status(404).json({ message: 'The user could not be found' });
}
})
.catch(err => res.status(500).json({ message: 'Error updating the user' }));
});
router.delete("/:id", (req, res) => {
Users.remove(req.params.id)
.then(data => res.status(200).json(data))
.catch(err => res.json(err));
});
module.exports = router;