-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathroutes.js
80 lines (45 loc) · 1.94 KB
/
routes.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
const express = require('express');
const router = express.Router();
let question1 = {id: 1, text: 'tosin is doing 48 hours shift duty', answers:[{text: 'this is very true', vote: 2, id: 1},{text: 'are you sure?', id: 2, vote: 3}]};
let question2 = {id: 2, text: 'tosin is doing 48 hours shift duty', answers:[{text: 'this is very true', vote: 2, id: 1},{text: 'are you sure?', id: 2, vote: 3}]};
let question3 = {id: 3, text: 'tosin is doing 48 hours shift duty', answers:[{text: 'this is very true', vote: 2, id: 1},{text: 'are you sure?', id: 2, vote: 3}]};
let questionArray = [question1,question2,question3];
// GET SPECIFIC QUESTION DOCUMENT WHEN QUESTION ID IS AVAILABLE
router.param('qID', (req, res, next, id) => {
const doc = questionArray.find(c => c.id === parseInt(req.params.qID));
req.question = doc;
if(!req.question) {
const err = new Error('Not Found');
return next(err.message);
}
return next();
});
//GET ALL QUESTIONS
router.get('/', (req, res) => {
res.json(questionArray);
});
//GET SPECIFIC QUESTION ID
router.get('/:qID', (req, res) => {
res.json(req.question);
});
router.post('/', (req, res, next) => {
const length = questionArray.length + 1;
let questioner = {};
questioner.id = length;
questioner.text = req.body.text;
questionArray.push(questioner);
res.json(questioner);
});
router.post('/:qID/answers', (req, res, next) => {
const doc = req.question;
const id = req.question.answers.length + 1;
const text = req.question.text;
doc.answers.push({text, id});
});
//GET SPECIFIC ANSWER DOCUMENT WHEN ANSWER ID IS AVAILABLE
router.get('/:qID/answers/:aID', (req, res, next) => {
const docs = questionArray.find(c => c.id === parseInt(req.params.qID));
const answer = docs.answers[parseInt(req.params.aID) -1];
res.json(answer);
});
module.exports = router;