-
Notifications
You must be signed in to change notification settings - Fork 0
/
dialogpreload.js
88 lines (63 loc) · 2.22 KB
/
dialogpreload.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
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
// All of the Node.js APIs are available in the preload process.
// It has the same sandbox as a Chrome extension.
const fs = require('fs');
const https = require('https');
const URL = require('url').URL;
const { shell } = require('electron');
const { getPasswordFromOSKeyStore } = require('./authFactory');
const Config = require('./config');
var config = new Config();
function closeCurrentWindow() {
var window = require('electron').remote.getCurrentWindow();
window.close();
};
window.addEventListener('DOMContentLoaded', () => {
document.getElementById('close').addEventListener('click', () => {
closeCurrentWindow();
});
getPasswordFromOSKeyStore().then((pw) => {
config.load(pw, (config) => {
document.getElementById('openQueue').addEventListener('click', () => {
var headers = {
'Content-Type': 'application/json'
};
if (config.crowdTokenKey) {
var cookie = `crowd.token_key=${config.crowdTokenKey}`;
headers['Cookie'] = cookie;
} else {
headers["Authorization"] = "Basic " + btoa(config.username + ":" + config.password);
}
var hostname = new URL(config.baseurl).hostname;
const options = {
hostname: hostname,
port: 443,
path: `/rest/servicedeskapi/servicedesk/${config.serviceDeskId}`,
method: 'GET',
headers: headers
};
var bodyBuffer = [];
const req = https.request(options, (res) => {
console.log('statusCode:', res.statusCode);
console.log('headers:', res.headers);
res.on('data', (d) => {
bodyBuffer = bodyBuffer.concat(d);
});
res.on('end', () => {
var body = JSON.parse(bodyBuffer.toString());
console.log(body);
console.log('No more data in response.');
var url = `${config.baseurl}/projects/${body.projectKey}/queues/custom/${config.queueId}`;
shell.openExternal(url);
setTimeout(function () {
closeCurrentWindow();
}, 1000);
})
});
req.on('error', (e) => {
console.error(e);
});
req.end();
});
});
});
});