-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathvalidateRequest.js
More file actions
48 lines (42 loc) · 1.54 KB
/
validateRequest.js
File metadata and controls
48 lines (42 loc) · 1.54 KB
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
var util = require('./util.js');
var _ = require("underscore");
exports.validate = function (req, res, next) {
if (req.headers["content-type"] !== "application/json") {
res.send(400, {message: "Invalid content type, are you missing application/json?"});
} else {
next();
}
};
exports.validateStreamIdAndReadToken = function (req, res, next) {
var readToken = req.headers.authorization; // REST endpoint has readToken in headers
var streamId = req.params.streamId;
if (_.isEmpty(readToken)) {
readToken = req.query.readToken; // website has readToken in query params
}
util.streamExists(streamId, readToken)
.then(function (streamFound) {
if (!streamFound) {
res.status(401).send("It looks like you are using an old version of the app. Please upgrade the app to see your visualizations.");
}
next();
}, function (err) {
console.error(err);
res.status(500).send({message: "Error while validating streamId/readToken combination"});
});
};
exports.validateDateRange = function(req, res, next) {
var result = "";
var error = false;
if(req.query.from === undefined){
result += " a from date (in UTC) is required (&from=20150115T10:00:00.000Z)\n";
error = true;
}
if(req.query.to === undefined){
result += " a to date (in UTC) is required (&to=20150115T10:00:00.000Z)\n";
error = true;
}
if(error === true){
res.status(400).send(result);
}
next();
}