This repository was archived by the owner on Feb 4, 2019. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathmain.js
More file actions
92 lines (77 loc) · 2.87 KB
/
Copy pathmain.js
File metadata and controls
92 lines (77 loc) · 2.87 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
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
81
82
83
84
85
86
87
88
89
90
91
92
/*jshint indent:2 */
var restify = require('restify');
var bunyan = require('bunyan');
var fs = require('fs'), url = require('url');
var ksdb = require('./ksdb');
var xmlBodyParser = require('./xmlbodyparser');
var xmlresponder = require('./xmlresponder');
var jsonresponder = require('./jsonresponder');
var appname = 'ksdb';
var appver = '0.3.1';
var conf = JSON.parse(fs.readFileSync(__dirname + '/config.json', encoding="utf8")); // may throw
var baseurl = conf.baseurl || '/ksdb';
if (conf.timezone) {
// override JSON.stringify formatting:
process.env.TZ = conf.timezone;
Date.prototype.toJSON = function(d) {return this.toLocaleString();};
}
var logger = bunyan.createLogger({name: appname,
level: conf.loglevel || 'warn',
stream: process.stdout,
serializers: bunyan.stdSerializers});
var server = restify.createServer({
name: appname,
version: appver,
log: logger,
formatters: {
'application/xml': xmlresponder(),
'application/json': jsonresponder() //customized error handling
}
});
server.use(restify.acceptParser( // do not use embedded parsers
[ 'application/json',
'application/xml',
'application/octet-stream',
'text/plain' ]));
server.use(restify.queryParser());
server.use(restify.bodyParser());
server.use(xmlBodyParser());
ksdb.init(conf, logger);
server.on('after', function (req, res, route, error) {
var plah = {req: req,
req_data: req._body,
req_body: req.body,
res: res,
res_body: res._body instanceof Buffer ? "a Buffer" : res._body,
res_data: res._data instanceof Buffer ? "a Buffer" : res._data};
if (error) {
req.log.error(error);
req.log.error(plah, "after");
} else
req.log.info(plah, "after");
});
if (conf.apimod === 'ct') {
// customer specific api
server.get(baseurl + '/download', ksdb.download);
server.get(baseurl + '/verify', ksdb.verify);
server.get(baseurl + '/create', ksdb.sign);
server.get(baseurl + '/param', ksdb.param);
var dummyhandler = function (req, res, next) {
res.setHeader('content-type', 'application/xml');
res.send({res_code: 0, res_message: '成功'});
return next();
};
server.post('/Enabler/app_ei_sync', dummyhandler);
server.post('/Enabler/app_status_sync', dummyhandler);
server.post('/Enabler/app_user_ei_sync', dummyhandler);
server.post('/Enabler/resource_sync', dummyhandler);
} else {
// more 'restful' interface for gereral consumption
server.get(baseurl + '/:hash/param', ksdb.param);
server.get(baseurl + '/:hash/download', ksdb.download);
server.get(baseurl + '/:hash', ksdb.verify);
server.put(baseurl + '/:hash', ksdb.sign);
}
server.listen(conf.listenport || 8080, function () {
logger.info('%s %s%s listening at %s', server.name, server.versions, conf.apimod || '', server.url + baseurl);
});