summaryrefslogtreecommitdiff
path: root/services/Requests.qml
diff options
context:
space:
mode:
Diffstat (limited to 'services/Requests.qml')
-rw-r--r--services/Requests.qml36
1 files changed, 36 insertions, 0 deletions
diff --git a/services/Requests.qml b/services/Requests.qml
new file mode 100644
index 0000000..36e9120
--- /dev/null
+++ b/services/Requests.qml
@@ -0,0 +1,36 @@
+pragma Singleton
+
+import "root:/config"
+import "root:/utils"
+import Quickshell
+
+Singleton {
+ id: root
+
+ function get(url: string, callback: var): void {
+ const xhr = new XMLHttpRequest();
+
+ const cleanup = () => {
+ xhr.abort();
+ xhr.onreadystatechange = null;
+ xhr.onerror = null;
+ };
+
+ xhr.open("GET", url, true);
+ xhr.onreadystatechange = () => {
+ if (xhr.readyState === XMLHttpRequest.DONE) {
+ if (xhr.status === 200)
+ callback(xhr.responseText);
+ else
+ console.warn(`[REQUESTS] GET request to ${url} failed with status ${xhr.status}`);
+ cleanup();
+ }
+ };
+ xhr.onerror = () => {
+ console.warn(`[REQUESTS] GET request to ${url} failed`);
+ cleanup();
+ };
+
+ xhr.send();
+ }
+}