-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathapi.js
More file actions
55 lines (42 loc) · 1.2 KB
/
api.js
File metadata and controls
55 lines (42 loc) · 1.2 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
49
50
51
52
53
54
'use strict';
const config = require('./config'),
routes = require('./App/Routes'),
restify = require('restify'),
jwt = require('jsonwebtoken'),
ErrorResponse = require('./App/Responses/ErrorResponse'),
Logger = require("./App/Utils/Logger");
/**
* Server
*/
global.server = restify.createServer({
name: config.api.server
});
/**
* Middleware
*/
global.server.use(restify.plugins.acceptParser(global.server.acceptable));
global.server.use(restify.plugins.queryParser());
global.server.use(restify.plugins.bodyParser());
//JWT Auth Token Middleware
global.server.use((request, response, next) => {
//We'll define a global user if token satisfy
global.user = null;
if (request.query.token !== undefined) {
try {
//TODO: the token must be contain users data
global.user = jwt.verify(request.query.token, config.api.secret_key);
} catch (err) {
let res = new ErrorResponse(response);
res.fill({'message': 'invalid token'});
res.send();
}
}
next();
});
/**
* Routes & Controllers
*/
routes.init.example();
global.server.listen(config.api.port, () => {
Logger.info("server is up");
});