-
Notifications
You must be signed in to change notification settings - Fork 1
/
configure-app.js
39 lines (33 loc) · 1.35 KB
/
configure-app.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
const axios = require('axios');
const httpsProxyAgent = require('https-proxy-agent');
const logger = require('./logger');
async function configureApp(configuration) {
logger.info('Started config');
const data = JSON.stringify(configuration.appConfig);
logger.info(`Config: '${data}'`);
const protocol = configuration.port === 443 ? 'https' : 'http';
const URL = `/api/v1/admin/${configuration.companyId}/apps/${configuration.name}/configure`;
var options = {
method: 'post',
url: URL,
baseURL: `${protocol}://${configuration.host}:${configuration.port}`,
data: data,
headers: {
'App-Id': configuration.appId,
'Auth-Token': configuration.authToken,
'Content-Type': 'application/json',
'Content-Length': data.length
},
responseType: 'json'
}
var useProxy = configuration.proxyHost && configuration.proxyPort ? true : false;
if (useProxy)
{
logger.info(`Using Proxy ${configuration.proxyHost}:${configuration.proxyPort}`);
var agent = new httpsProxyAgent(`http://${configuration.proxyUsername}:${configuration.proxyPassword}@${configuration.proxyHost}:${configuration.proxyPort}`);
options.httpsAgent = agent;
}
await axios(options);
logger.info('Completed config');
}
module.exports = configureApp;