1 | const API_URL = 'http://127.0.0.1/genieacs';
|
---|
2 | const qs = require('querystring');
|
---|
3 | const url = require("url");
|
---|
4 | const http = require(API_URL.split(":", 1)[0]);
|
---|
5 | const logger = require('../../lib/logger');
|
---|
6 |
|
---|
7 | function portaxCallback(args, callback) {
|
---|
8 |
|
---|
9 | let params = JSON.parse(args[0]);
|
---|
10 |
|
---|
11 | const uri = API_URL;
|
---|
12 |
|
---|
13 | let postData = qs.stringify(params);
|
---|
14 |
|
---|
15 | let options = url.parse(uri);
|
---|
16 |
|
---|
17 | options.method = "POST";
|
---|
18 | options.headers = {
|
---|
19 | "Accept": 'application/json',
|
---|
20 | "Content-Type": 'application/x-www-form-urlencoded',
|
---|
21 | "Content-Length": Buffer.byteLength(postData)
|
---|
22 | };
|
---|
23 |
|
---|
24 | logger.info({message: 'post callback ' + params.id});
|
---|
25 |
|
---|
26 | let request = http.request(options, function (response) {
|
---|
27 |
|
---|
28 | if (response.statusCode == 404) {
|
---|
29 | return callback(null, null);
|
---|
30 | }
|
---|
31 |
|
---|
32 | if (response.statusCode >= 400) {
|
---|
33 | return callback(new Error("Unexpected error. Response Code: " +
|
---|
34 | response.statusCode + '. Status Message: ' + response.statusMessage + '. t: ' + typeof response.statusCode));
|
---|
35 | }
|
---|
36 |
|
---|
37 | let data = "";
|
---|
38 |
|
---|
39 | response.on("data", function(d) {
|
---|
40 | data = data + d.toString();
|
---|
41 | });
|
---|
42 |
|
---|
43 | response.on("end", function () {
|
---|
44 | logger.info({message: 'post callback response: ' + data});
|
---|
45 | return callback(null,data);
|
---|
46 | });
|
---|
47 |
|
---|
48 | });
|
---|
49 |
|
---|
50 | request.on("error", function (err) {
|
---|
51 | logger.info({message: 'post callback error: ' + err});
|
---|
52 | request.abort();
|
---|
53 | return callback(err);
|
---|
54 | });
|
---|
55 |
|
---|
56 | request.on("socket", function(socket) {
|
---|
57 | socket.setTimeout(5000);
|
---|
58 | return socket.on('timeout', function() {
|
---|
59 | logger.info({message: 'socket timeout'});
|
---|
60 | request.abort();
|
---|
61 | });
|
---|
62 | });
|
---|
63 |
|
---|
64 | request.write(postData);
|
---|
65 | request.end();
|
---|
66 |
|
---|
67 | }
|
---|
68 |
|
---|
69 | function portaxGetConfig(args, callback) {
|
---|
70 |
|
---|
71 | if( null == args) {
|
---|
72 | return callback(new Error('undefined arguments'));
|
---|
73 | }
|
---|
74 |
|
---|
75 | let genieacsId = args[0];
|
---|
76 |
|
---|
77 | logger.info({message: 'Fetch config', id: genieacsId});
|
---|
78 |
|
---|
79 | const uri = API_URL + "?id=" + genieacsId;
|
---|
80 |
|
---|
81 | let options = url.parse(uri);
|
---|
82 | options.headers = { accept: 'application/json', "content-type": 'application/json' };
|
---|
83 |
|
---|
84 | let request = http.get(options, function (response) {
|
---|
85 | if (response.statusCode == 404) {
|
---|
86 | return callback(null, null);
|
---|
87 | }
|
---|
88 |
|
---|
89 | if (response.statusCode >= 400) {
|
---|
90 | return callback(new Error("Unexpected error. Response Code: " +
|
---|
91 | response.statusCode + '. Status Message: ' + response.statusMessage + '. t: ' + typeof response.statusCode));
|
---|
92 | }
|
---|
93 |
|
---|
94 | let data = "";
|
---|
95 |
|
---|
96 | response.on("data", function(d) {
|
---|
97 | data = data + d.toString();
|
---|
98 | });
|
---|
99 |
|
---|
100 | response.on("end", function () {
|
---|
101 | if(data == "") {
|
---|
102 | return callback(null,null);
|
---|
103 | }
|
---|
104 | logger.info({message: 'Config fetched', id: genieacsId, data: data});
|
---|
105 | let result = JSON.parse(data);
|
---|
106 | return callback(null,result);
|
---|
107 | });
|
---|
108 |
|
---|
109 | });
|
---|
110 |
|
---|
111 | request.on("socket", function(socket) {
|
---|
112 | socket.setTimeout(5000);
|
---|
113 | return socket.on('timeout', function() {
|
---|
114 | logger.info({message: 'socket timeout'});
|
---|
115 | request.abort();
|
---|
116 | });
|
---|
117 | });
|
---|
118 |
|
---|
119 | request.on("error", function (err) {
|
---|
120 | logger.info({message: 'get config error: ' + err});
|
---|
121 | request.abort();
|
---|
122 | return callback(err);
|
---|
123 | });
|
---|
124 |
|
---|
125 | }
|
---|
126 |
|
---|
127 | exports.portaxCallback = portaxCallback;
|
---|
128 | exports.portaxGetConfig = portaxGetConfig;
|
---|
129 |
|
---|