summaryrefslogtreecommitdiff
path: root/static/js/controllers/base_controller.js
diff options
context:
space:
mode:
Diffstat (limited to 'static/js/controllers/base_controller.js')
-rw-r--r--static/js/controllers/base_controller.js33
1 files changed, 33 insertions, 0 deletions
diff --git a/static/js/controllers/base_controller.js b/static/js/controllers/base_controller.js
new file mode 100644
index 0000000..c5b562f
--- /dev/null
+++ b/static/js/controllers/base_controller.js
@@ -0,0 +1,33 @@
+export class BaseController {
+ constructor() {
+ this.comments_server_url = document.getElementById('comments-client').src;
+ this.origin = window.location.origin;
+ this.protocol = this.getProtocol();
+ this.domain = this.getDomain();
+ this.post = window.location.pathname;
+ this.comments_server_host = `${this.protocol}//${this.domain}`;
+ this.parser = new DOMParser();
+ }
+
+ getDomain() {
+ return this.comments_server_url.split('/')[2];
+ }
+
+ getProtocol() {
+ return this.comments_server_url.split('/')[0];
+ }
+
+ htmlFromResponse(body) {
+ return this.parser.parseFromString(body, "text/html");
+ }
+
+ async get(route) {
+ try {
+ const response = await fetch(`${this.comments_server_host}${route}`);
+
+ return response.text().then(this.htmlFromResponse.bind(this));
+ } catch(error) {
+ return null;
+ }
+ }
+}