-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathroutes.js
56 lines (47 loc) · 1.62 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
/**
* Created by massimilianocannarozzo on 14/05/16.
*/
/* eslint no-unused-vars: "off" */
/* eslint-env node */
const RaiApi = require('./raiapi');
const api = new RaiApi();
const router = require('express').Router();
const createError = require('http-errors');
let canali = {};
RaiApi.listCanali((err, data) => canali = err ? {} : data);
//Canali
router.get('/canali', (req, res, next) => RaiApi.listCanali()
.then(canali => res.send(canali))
.catch(error => next(error))
);
//Programmi
router.get('/canali/:canale/programmi', (req, res, next) =>
api.listProgrammi(req.params.canale, req.query.data)
.then(programmi => res.send(programmi))
.catch(error => next(error))
);
//Qualita
router.get('/canali/:canale/programmi/:programma/qualita', (req, res, next) =>
api.listQualita(req.params.canale, req.query.data, req.params.programma)
.then(qualita => res.send(qualita))
.catch(error => next(error))
);
//Risorsa
router.get('/canali/:canale/programmi/:programma/qualita/:qualita/:action', (req, res, next) => {
if (['file', 'url'].indexOf(req.params.action) < 0) {
return next(createError.BadRequest('Azione non valida'));
}
const { params: { canale, programma, qualita, action }, query: { data: date } } = req;
api.getFileUrl(canale, date, programma, qualita)
.then(url => {
if (action === 'file') {
res.redirect(url);
} else if (req.params.action === 'url') {
res.json({
url,
});
}
})
.catch(error => next(error))
});
module.exports = router;