diff --git a/app/services/websockets.js b/app/services/websockets.js index a3ebbbbbcce1f9aae8a465f8cedf41f56bbeed8c..b28a099e8719baffcd1ca17d62c83180306e21d9 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 0000000000000000000000000000000000000000..5f45c215f15e26f541e9ca19e2d0931a4b0cfbf7 --- /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 707bf5c25b0109e90c8fef3b2c40efcdeab5324a..40799276be87705c88246488c526539915442f43 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 7bb45103fed7e73feb377856bb07e996b5f00860..930fec417be91334d2d91c4e0cce4018cdf5a445 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