From ba3e6916723fa206e0d2c161a09f66ebe223fe52 Mon Sep 17 00:00:00 2001 From: Eugen Ciur <eugen@papermerge.com> Date: Sat, 26 Feb 2022 08:31:00 +0100 Subject: [PATCH] refactor services - DRY --- app/services/websockets.js | 33 ++++--------------------------- app/services/ws/base.js | 34 ++++++++++++++++++++++++++++++++ app/services/ws_inbox_refresh.js | 33 ++++--------------------------- app/services/ws_nodes_move.js | 33 ++++--------------------------- 4 files changed, 46 insertions(+), 87 deletions(-) create mode 100644 app/services/ws/base.js diff --git a/app/services/websockets.js b/app/services/websockets.js index a3ebbbb..b28a099 100644 --- a/app/services/websockets.js +++ b/app/services/websockets.js @@ -1,33 +1,8 @@ -import Service from '@ember/service'; -import { ws_base_url } from 'papermerge/utils/host'; +import WSBaseService from 'papermerge/services/ws/base'; -export default class Websockets extends Service { - - - constructor(owner, args) { - super(owner, args); - - let that = this; - - this._socket = new WebSocket(`${ws_base_url()}/document/`); - this._handlers = []; - - this._socket.onmessage = function(event) { - that._handlers.forEach((item) => { - let json_data; - - try { - json_data = JSON.parse(event.data); - item.handler.apply(item.context, [json_data, event]); - } catch (err) { - console.log(`Error ${err} while parsing incoming data: ${event.data}`); - } - }); - } - } - - addHandler(handler, context) { - this._handlers.push({handler, context}); +export default class Websockets extends WSBaseService { + url() { + return '/document/'; } } \ No newline at end of file diff --git a/app/services/ws/base.js b/app/services/ws/base.js new file mode 100644 index 0000000..5f45c21 --- /dev/null +++ b/app/services/ws/base.js @@ -0,0 +1,34 @@ +import { ws_base_url } from 'papermerge/utils/host'; +import Service from '@ember/service'; + + +export default class WSBaseService extends Service { + + + constructor(owner, args) { + super(owner, args); + + let that = this; + + this._socket = new WebSocket(`${ws_base_url()}${this.url()}`); + this._handlers = []; + + this._socket.onmessage = function(event) { + that._handlers.forEach((item) => { + let json_data; + + try { + json_data = JSON.parse(event.data); + item.handler.apply(item.context, [json_data, event]); + } catch (err) { + console.log(`Error ${err} while parsing incoming data: ${event.data}`); + } + }); + } + } + + addHandler(handler, context) { + this._handlers.push({handler, context}); + } + +} diff --git a/app/services/ws_inbox_refresh.js b/app/services/ws_inbox_refresh.js index 707bf5c..4079927 100644 --- a/app/services/ws_inbox_refresh.js +++ b/app/services/ws_inbox_refresh.js @@ -1,33 +1,8 @@ -import { ws_base_url } from 'papermerge/utils/host'; -import Service from '@ember/service'; +import WSBaseService from 'papermerge/services/ws/base'; -export default class WSInboxRefresh extends Service { - - - constructor(owner, args) { - super(owner, args); - - let that = this; - - this._socket = new WebSocket(`${ws_base_url()}/nodes/inbox-refresh/`); - this._handlers = []; - - this._socket.onmessage = function(event) { - that._handlers.forEach((item) => { - let json_data; - - try { - json_data = JSON.parse(event.data); - item.handler.apply(item.context, [json_data, event]); - } catch (err) { - console.log(`Error ${err} while parsing incoming data: ${event.data}`); - } - }); - } - } - - addHandler(handler, context) { - this._handlers.push({handler, context}); +export default class WSInboxRefresh extends WSBaseService { + url() { + return '/nodes/inbox-refresh/'; } } \ No newline at end of file diff --git a/app/services/ws_nodes_move.js b/app/services/ws_nodes_move.js index 7bb4510..930fec4 100644 --- a/app/services/ws_nodes_move.js +++ b/app/services/ws_nodes_move.js @@ -1,33 +1,8 @@ -import { ws_base_url } from 'papermerge/utils/host'; -import Service from '@ember/service'; +import WSBaseService from 'papermerge/services/ws/base'; -export default class WSNodesMove extends Service { - - - constructor(owner, args) { - super(owner, args); - - let that = this; - - this._socket = new WebSocket(`${ws_base_url()}/nodes/move`); - this._handlers = []; - - this._socket.onmessage = function(event) { - that._handlers.forEach((item) => { - let json_data; - - try { - json_data = JSON.parse(event.data); - item.handler.apply(item.context, [json_data, event]); - } catch (err) { - console.log(`Error ${err} while parsing incoming data: ${event.data}`); - } - }); - } - } - - addHandler(handler, context) { - this._handlers.push({handler, context}); +export default class WSNodesMove extends WSBaseService { + url() { + return '/nodes/move/'; } } \ No newline at end of file -- GitLab