From 6b70e29789b4e586bacc44dd2aeff991ceb41959 Mon Sep 17 00:00:00 2001 From: Ali BARIN Date: Mon, 27 Jan 2025 16:16:40 +0000 Subject: [PATCH 1/6] feat(virtualq/actions): add properties JSON field --- .../virtualq/actions/create-waiter/index.js | 19 +++++++++++++++++ .../virtualq/actions/update-waiter/index.js | 21 +++++++++++++++++++ 2 files changed, 40 insertions(+) diff --git a/packages/backend/src/apps/virtualq/actions/create-waiter/index.js b/packages/backend/src/apps/virtualq/actions/create-waiter/index.js index af22d2a5..b1233475 100644 --- a/packages/backend/src/apps/virtualq/actions/create-waiter/index.js +++ b/packages/backend/src/apps/virtualq/actions/create-waiter/index.js @@ -1,4 +1,5 @@ import defineAction from '../../../../helpers/define-action.js'; +import isPlainObject from 'lodash/isPlainObject.js'; export default defineAction({ name: 'Create waiter', @@ -97,6 +98,16 @@ export default defineAction({ required: false, variables: true, }, + { + label: 'Properties', + key: 'properties', + type: 'string', + required: false, + variables: false, + valueType: 'parse', + description: 'JSON for the additional properties.', + value: '{}', + }, ], async run($) { const { @@ -107,6 +118,7 @@ export default defineAction({ appointment, appointmentTime, servicePhoneToCall, + properties = {}, } = $.step.parameters; const body = { @@ -119,6 +131,7 @@ export default defineAction({ source, appointment, servicePhoneToCall, + properties, }, }, }; @@ -127,6 +140,12 @@ export default defineAction({ body.data.attributes.appointmentTime = appointmentTime; } + if (!isPlainObject(properties)) { + throw new Error( + `The "properties" field must have a valid JSON. The current value: ${properties}` + ); + } + const { data } = await $.http.post('/v2/waiters', body); $.setActionItem({ raw: data }); diff --git a/packages/backend/src/apps/virtualq/actions/update-waiter/index.js b/packages/backend/src/apps/virtualq/actions/update-waiter/index.js index 51f9d8b4..503f4e14 100644 --- a/packages/backend/src/apps/virtualq/actions/update-waiter/index.js +++ b/packages/backend/src/apps/virtualq/actions/update-waiter/index.js @@ -1,4 +1,5 @@ import defineAction from '../../../../helpers/define-action.js'; +import isPlainObject from 'lodash/isPlainObject.js'; export default defineAction({ name: 'Update waiter', @@ -104,6 +105,15 @@ export default defineAction({ required: false, variables: true, }, + { + label: 'Properties', + key: 'properties', + type: 'string', + required: false, + variables: false, + valueType: 'parse', + description: 'JSON for the additional properties.', + }, ], async run($) { @@ -117,6 +127,7 @@ export default defineAction({ talkTime, agentId, servicePhoneToCall, + properties, } = $.step.parameters; const body = { @@ -150,6 +161,16 @@ export default defineAction({ body.data.attributes.wait_time_when_up = waitTimeWhenUp; } + if (properties) { + if (!isPlainObject(properties)) { + throw new Error( + `The "properties" field must have a valid JSON. The current value: ${properties}` + ); + } + + body.data.attributes.properties = properties; + } + const { data } = await $.http.put(`/v2/waiters/${waiterId}`, body); $.setActionItem({ raw: data }); From f168f48efb906e74f99ec1acfa01ac2f291bf52c Mon Sep 17 00:00:00 2001 From: Ali BARIN Date: Mon, 27 Jan 2025 16:17:34 +0000 Subject: [PATCH 2/6] fix(services/action): log after assigning error to prevent mutation --- packages/backend/src/services/action.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/backend/src/services/action.js b/packages/backend/src/services/action.js index fdf70e12..cb4a6ba1 100644 --- a/packages/backend/src/services/action.js +++ b/packages/backend/src/services/action.js @@ -51,8 +51,6 @@ export const processAction = async (options) => { const shouldNotConsiderAsError = shouldEarlyExit || shouldNotProcess; if (!shouldNotConsiderAsError) { - logger.error(error); - if (error instanceof HttpError) { $.actionOutput.error = error.details; } else { @@ -62,6 +60,8 @@ export const processAction = async (options) => { $.actionOutput.error = { error: error.message }; } } + + logger.error(error); } } From 520b7839c66ca38c1c93fa0d78dd0e655afca077 Mon Sep 17 00:00:00 2001 From: Ali BARIN Date: Mon, 27 Jan 2025 16:17:41 +0000 Subject: [PATCH 3/6] fix(services/flow): log after assigning error to prevent mutation --- packages/backend/src/services/flow.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/backend/src/services/flow.js b/packages/backend/src/services/flow.js index e257009e..a384c1c9 100644 --- a/packages/backend/src/services/flow.js +++ b/packages/backend/src/services/flow.js @@ -31,8 +31,6 @@ export const processFlow = async (options) => { const shouldNotConsiderAsError = shouldEarlyExit || shouldNotProcess; if (!shouldNotConsiderAsError) { - logger.error(error); - if (error instanceof HttpError) { $.triggerOutput.error = error.details; } else { @@ -42,6 +40,8 @@ export const processFlow = async (options) => { $.triggerOutput.error = { error: error.message }; } } + + logger.error(error); } } From 585b0f4246b034c4162dc556cf8a80162f475a5e Mon Sep 17 00:00:00 2001 From: Ali BARIN Date: Thu, 30 Jan 2025 11:07:02 +0000 Subject: [PATCH 4/6] feat(virtualq): update urls --- packages/backend/src/apps/virtualq/index.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/backend/src/apps/virtualq/index.js b/packages/backend/src/apps/virtualq/index.js index 09ae740a..3f9910e8 100644 --- a/packages/backend/src/apps/virtualq/index.js +++ b/packages/backend/src/apps/virtualq/index.js @@ -11,8 +11,8 @@ export default defineApp({ iconUrl: '{BASE_URL}/apps/virtualq/assets/favicon.svg', authDocUrl: '{DOCS_URL}/apps/virtualq/connection', supportsConnections: true, - baseUrl: 'https://www.virtualq.io', - apiBaseUrl: 'https://api.virtualq.io/api/', + baseUrl: 'https://www.virtualq.tech', + apiBaseUrl: 'https://api.virtualq.tech/api/', primaryColor: '#2E3D59', beforeRequest: [addAuthHeader], auth, From d7a4b042d443966524320a82f6642fd789dc15e7 Mon Sep 17 00:00:00 2001 From: Ali BARIN Date: Thu, 30 Jan 2025 11:07:20 +0000 Subject: [PATCH 5/6] fix(virtualq/create-waiter): use snake case for service phone to call --- .../backend/src/apps/virtualq/actions/create-waiter/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/backend/src/apps/virtualq/actions/create-waiter/index.js b/packages/backend/src/apps/virtualq/actions/create-waiter/index.js index b1233475..dc4ec204 100644 --- a/packages/backend/src/apps/virtualq/actions/create-waiter/index.js +++ b/packages/backend/src/apps/virtualq/actions/create-waiter/index.js @@ -130,7 +130,7 @@ export default defineAction({ channel, source, appointment, - servicePhoneToCall, + service_phone_to_call: servicePhoneToCall, properties, }, }, From f4fa4e393db19b724adbeb4e7cc113620906179e Mon Sep 17 00:00:00 2001 From: Ali BARIN Date: Thu, 30 Jan 2025 11:08:05 +0000 Subject: [PATCH 6/6] fix(virtualq/update-waiter): update ewt label --- .../backend/src/apps/virtualq/actions/update-waiter/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/backend/src/apps/virtualq/actions/update-waiter/index.js b/packages/backend/src/apps/virtualq/actions/update-waiter/index.js index 503f4e14..c00631d0 100644 --- a/packages/backend/src/apps/virtualq/actions/update-waiter/index.js +++ b/packages/backend/src/apps/virtualq/actions/update-waiter/index.js @@ -50,7 +50,7 @@ export default defineAction({ description: 'Used to find caller if 0 is used for waiter field', }, { - label: 'EWT', + label: 'Estimated waiting time', key: 'serviceWaiterEwt', type: 'string', description: 'EWT as calculated by the service',