Add sessions endpoints with queries

This commit is contained in:
2019-08-01 16:25:44 +02:00
parent ccc7a0bfb0
commit 03a9c793d8
12 changed files with 167 additions and 36 deletions

View File

@@ -0,0 +1,39 @@
const db = require('../../data/dbConfig');
module.exports = {
addSession,
findUserSessions,
updateSession,
removeSession
};
async function addSession(session) {
const [id] = await db('sessions')
.insert(session);
return findSessionById(id);
}
function findUserSessions(user_id) {
return db
.from("sessions")
.where({ user_id });
}
function findSessionById(id) {
return db('sessions')
.where({ id })
.first();
}
async function updateSession(id, changes) {
await db('sessions')
.where({ id })
.update(changes, '*');
return findSessionById(id);
}
async function removeSession(id) {
await db('sessions')
.where({ id })
.del();
}

View File

@@ -0,0 +1,43 @@
const router = require('express').Router();
const { authenticate } = require('../auth/authenticate');
const Sessions = require('../sessions/sessionsModel');
router.post('/sessions', authenticate, (req, res) => {
Sessions.addSession(req.body)
.then(response => {
res.status(200).json(response);
})
.catch(err => res.send(err));
});
router.get('/:id/sessions', authenticate, (req, res) => {
Sessions.findUserSessions(req.params.id)
.then(users => {
res.status(200).json(users);
})
.catch(err => res.send(err));
});
router.put('/sessions/:id', authenticate, async (req, res) => {
Sessions.updateSession(req.params.id, req.body)
.then(session => {
if (session) {
res.status(200).json(session);
} else {
res.status(404).json({ message: 'The session could not be found' });
}
})
.catch(err => {
res.status(500).json(err);
});
});
router.delete("/sessions/:id", authenticate, async (req, res) => {
Sessions.removeSession(req.params.id)
.then(() => res.status(200).json({ message: 'The session has been successfully deleted' }))
.catch(err => res.json(err));
});
module.exports = router;