From 931e793a871abce2ec4955bf04a52fda7eed9aa6 Mon Sep 17 00:00:00 2001 From: Marcos Spessatto Defendi Date: Fri, 6 Dec 2019 15:56:30 -0300 Subject: [PATCH] [IMPROVE] Replace livechat:customFields to REST (#15496) * Create livechat custom fields endpoints to replace pub * Replace livechat:customFields subscribes * Apply suggestions from review * Add support to pagination * Remove unecessary async --- .../views/app/livechatCustomFieldForm.js | 17 ++---- .../views/app/livechatCustomFields.html | 2 +- .../client/views/app/livechatCustomFields.js | 39 ++++++++++-- app/livechat/server/api/lib/customFields.js | 35 +++++++++++ app/livechat/server/api/v1/customField.js | 33 ++++++++++ .../server/publications/customFields.js | 1 + app/models/server/raw/LivechatCustomField.js | 5 ++ app/models/server/raw/index.js | 3 + .../end-to-end/api/livechat/custom-fields.js | 61 +++++++++++++++++++ 9 files changed, 179 insertions(+), 17 deletions(-) create mode 100644 app/livechat/server/api/lib/customFields.js create mode 100644 app/models/server/raw/LivechatCustomField.js create mode 100644 tests/end-to-end/api/livechat/custom-fields.js diff --git a/app/livechat/client/views/app/livechatCustomFieldForm.js b/app/livechat/client/views/app/livechatCustomFieldForm.js index c3ac8eb67b1..0a821fa4421 100644 --- a/app/livechat/client/views/app/livechatCustomFieldForm.js +++ b/app/livechat/client/views/app/livechatCustomFieldForm.js @@ -5,8 +5,8 @@ import { Template } from 'meteor/templating'; import toastr from 'toastr'; import { t, handleError } from '../../../../utils'; -import { LivechatCustomField } from '../../collections/LivechatCustomField'; import './livechatCustomFieldForm.html'; +import { APIClient } from '../../../../utils/client'; Template.livechatCustomFieldForm.helpers({ customField() { @@ -60,15 +60,10 @@ Template.livechatCustomFieldForm.events({ }, }); -Template.livechatCustomFieldForm.onCreated(function() { +Template.livechatCustomFieldForm.onCreated(async function() { this.customField = new ReactiveVar({}); - this.autorun(() => { - const sub = this.subscribe('livechat:customFields', FlowRouter.getParam('_id')); - if (sub.ready()) { - const customField = LivechatCustomField.findOne({ _id: FlowRouter.getParam('_id') }); - if (customField) { - this.customField.set(customField); - } - } - }); + const { customField } = await APIClient.v1.get(`livechat/custom-fields/${ FlowRouter.getParam('_id') }`); + if (customField) { + this.customField.set(customField); + } }); diff --git a/app/livechat/client/views/app/livechatCustomFields.html b/app/livechat/client/views/app/livechatCustomFields.html index 6edb287a95f..07fbeaedcfb 100644 --- a/app/livechat/client/views/app/livechatCustomFields.html +++ b/app/livechat/client/views/app/livechatCustomFields.html @@ -1,7 +1,7 @@