1 | | config/ext/portax.js: |
2 | | |
3 | | {{{ |
4 | | const API_URL = 'https://portax.rionet.cz/api/genieacs'; |
5 | | const url = require("url"); |
6 | | const http = require(API_URL.split(":", 1)[0]); |
7 | | |
8 | | const logger = require('../../lib/logger'); |
9 | | |
10 | | function portaxCallback(args, callback) { |
11 | | |
12 | | let params = JSON.parse(args[0]); |
13 | | |
14 | | const uri = API_URL + "/callback.pl?id=" + params.id + "&url=" + params.url + "&ip=" + params.ip; |
15 | | |
16 | | let options = url.parse(uri); |
17 | | options.headers = { accept: 'application/json', "content-type": 'application/json' }; |
18 | | |
19 | | let request = http.get(options, function (response) { |
20 | | |
21 | | if (response.statusCode == 404) { |
22 | | return callback(null, null); |
23 | | } |
24 | | |
25 | | if (response.statusCode >= 400) { |
26 | | return callback(new Error("Unexpected error. Response Code: " + |
27 | | response.statusCode + '. Status Message: ' + response.statusMessage + '. t: ' + typeof response.statusCode)); |
28 | | } |
29 | | |
30 | | response.on("end", function () { |
31 | | return callback(null,null); |
32 | | }); |
33 | | |
34 | | }); |
35 | | |
36 | | request.on("error", function (err) { |
37 | | callback(err); |
38 | | }); |
39 | | |
40 | | callback(null); |
41 | | |
42 | | } |
43 | | |
44 | | function portaxGetConfig(args, callback) { |
45 | | |
46 | | let genieacsId = args[0]; |
47 | | logger.info({message: 'fetch config', id: genieacsId}); |
48 | | |
49 | | const uri = API_URL + "/get-config.pl?id=" + genieacsId; |
50 | | |
51 | | let options = url.parse(uri); |
52 | | options.headers = { accept: 'application/json', "content-type": 'application/json' }; |
53 | | |
54 | | let request = http.get(options, function (response) { |
55 | | if (response.statusCode == 404) { |
56 | | return callback(null, null); |
57 | | } |
58 | | |
59 | | if (response.statusCode >= 400) { |
60 | | return callback(new Error("Unexpected error. Response Code: " + |
61 | | response.statusCode + '. Status Message: ' + response.statusMessage + '. t: ' + typeof response.statusCode)); |
62 | | } |
63 | | |
64 | | let data = ""; |
65 | | |
66 | | response.on("data", function(d) { |
67 | | data = data + d.toString(); |
68 | | }); |
69 | | |
70 | | response.on("end", function () { |
71 | | if(data == "") { |
72 | | return callback(null,null); |
73 | | } |
74 | | let result = JSON.parse(data); |
75 | | return callback(null,result); |
76 | | }); |
77 | | |
78 | | }); |
79 | | |
80 | | request.on("error", function (err) { |
81 | | callback(err); |
82 | | }); |
83 | | } |
84 | | |
85 | | exports.portaxCallback = portaxCallback; |
86 | | exports.portaxGetConfig = portaxGetConfig; |
87 | | }}} |
88 | | |
89 | | Upravit lib/nbi.js - {{{ping}}} |