forked from Rowe/kyocera-device-toolkit
-
Notifications
You must be signed in to change notification settings - Fork 0
/
server.js
60 lines (55 loc) · 1.99 KB
/
server.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
const http = require('http');
const url = require('url');
const querystring = require('querystring');
const api = require('./interface');
const logger = require('./logger');
function start() {
function onRequest(request, response) {
if (request.method === 'GET') {
var requestURL = url.parse(request.url);
const params = querystring.parse(requestURL.query);
const host = params.host;
const action = params.action;
if (host != undefined && action != undefined) {
switch (action) {
case 'panel':
api.getPanelInfo(host, function (res) {
onResponse(res, response);
});
break;
case 'tonner':
api.getTonerInfo(host, function (res) {
onResponse(res, response);
});
break;
case 'cassette':
api.getCassetteInfo(host, function (res) {
onResponse(res, response);
});
break;
case 'counter':
api.getDeviceCounter(host, function (res) {
onResponse(res, response);
});
break;
case 'restart':
api.restart(host, function (res) {
onResponse(res, response);
});
break;
default:
break;
}
}
} else {
response.statusCode = 404;
}
}
http.createServer(onRequest).listen(8888);
logger.info('The server has started at the port 8888');
}
function onResponse(res, response) {
response.write(JSON.stringify(res));
response.end();
}
exports.start = start;