Skip to content

Commit 1b8662d

Browse files
committed
Commit missing request.js
1 parent 03fdf7d commit 1b8662d

File tree

1 file changed

+36
-0
lines changed

1 file changed

+36
-0
lines changed

public/openbttn/request.js

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
'use strict';
2+
3+
let requestAuthKey = null;
4+
5+
function request(body, timeout = 5000) {
6+
let xhr = new XMLHttpRequest();
7+
xhr.open('POST', `http://${location.hostname}:8774/socket`);
8+
9+
return new Promise(function (resolve, reject) {
10+
xhr.onload = function (e) {
11+
if (xhr.status === 200) {
12+
resolve(xhr.responseText);
13+
} else if ([400, 403, 500].includes(xhr.status)) {
14+
reject(`${xhr.statusText}: ${xhr.responseText}`);
15+
} else {
16+
reject(`Unknown response: ${xhr.status} ${xhr.statusText} (${xhr.responseText})`)
17+
}
18+
};
19+
xhr.ontimeout = (e) => reject('Request timed out!');
20+
xhr.onerror = (e) => reject('Error communicating with bttn!');
21+
22+
xhr.timeout = timeout;
23+
24+
if (requestAuthKey) {
25+
body = 'auth = ' + requestAuthKey + '\n' + body;
26+
}
27+
xhr.send(body);
28+
});
29+
}
30+
31+
function setRequestAuthKey(key) {
32+
requestAuthKey = key;
33+
}
34+
35+
window.request = request;
36+
window.setRequestAuthKey = setRequestAuthKey;

0 commit comments

Comments
 (0)