diff options
Diffstat (limited to 'static/js/controllers/base_controller.js')
-rw-r--r-- | static/js/controllers/base_controller.js | 33 |
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; + } + } +} |