From 02c9bc1bb0c3947a0f5cda92d9f65211e67a4cc1 Mon Sep 17 00:00:00 2001 From: steveb Date: Fri, 19 Jan 2024 10:54:05 +0100 Subject: [PATCH 1/2] feat(action): add original url in the smart action handler --- packages/agent/src/routes/modification/action/action.ts | 9 ++++++++- packages/datasource-toolkit/src/interfaces/collection.ts | 1 + 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/packages/agent/src/routes/modification/action/action.ts b/packages/agent/src/routes/modification/action/action.ts index f9440b1e25..97c86bdda6 100644 --- a/packages/agent/src/routes/modification/action/action.ts +++ b/packages/agent/src/routes/modification/action/action.ts @@ -68,6 +68,7 @@ export default class ActionRoute extends CollectionRoute { this.getRecordSelection(context, false), ]); const requestBody = context.request.body as SmartActionApprovalRequestBody; + const contextUrl: string = context.request.url || context.request.originalUrl; const canPerformCustomActionParams = { caller, @@ -103,7 +104,13 @@ export default class ActionRoute extends CollectionRoute { // Now that we have the field list, we can parse the data again. const data = ForestValueConverter.makeFormData(dataSource, rawData, fields); - const result = await this.collection.execute(caller, this.actionName, data, filterForCaller); + const result = await this.collection.execute( + caller, + this.actionName, + data, + filterForCaller, + contextUrl, + ); if (result?.type === 'Error') { context.response.status = HttpCode.BadRequest; diff --git a/packages/datasource-toolkit/src/interfaces/collection.ts b/packages/datasource-toolkit/src/interfaces/collection.ts index b4b00ee5fe..e0b0499ba2 100644 --- a/packages/datasource-toolkit/src/interfaces/collection.ts +++ b/packages/datasource-toolkit/src/interfaces/collection.ts @@ -35,6 +35,7 @@ export interface Collection { name: string, formValues: RecordData, filter?: Filter, + url?: string, ): Promise; getForm( From 31f7e21c113073a09fa4d32cdd1f806dafa9d1f1 Mon Sep 17 00:00:00 2001 From: steveb Date: Tue, 23 Jan 2024 11:45:24 +0100 Subject: [PATCH 2/2] chore(action): make single parameter an object and change string to url --- .../agent/src/routes/modification/action/action.ts | 12 ++++-------- .../datasource-toolkit/src/interfaces/collection.ts | 4 +++- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/packages/agent/src/routes/modification/action/action.ts b/packages/agent/src/routes/modification/action/action.ts index 97c86bdda6..47a741fc34 100644 --- a/packages/agent/src/routes/modification/action/action.ts +++ b/packages/agent/src/routes/modification/action/action.ts @@ -68,7 +68,7 @@ export default class ActionRoute extends CollectionRoute { this.getRecordSelection(context, false), ]); const requestBody = context.request.body as SmartActionApprovalRequestBody; - const contextUrl: string = context.request.url || context.request.originalUrl; + const webAppURL: URL = new URL(context.request.url || context.request.originalUrl); const canPerformCustomActionParams = { caller, @@ -104,13 +104,9 @@ export default class ActionRoute extends CollectionRoute { // Now that we have the field list, we can parse the data again. const data = ForestValueConverter.makeFormData(dataSource, rawData, fields); - const result = await this.collection.execute( - caller, - this.actionName, - data, - filterForCaller, - contextUrl, - ); + const result = await this.collection.execute(caller, this.actionName, data, filterForCaller, { + webAppURL, + }); if (result?.type === 'Error') { context.response.status = HttpCode.BadRequest; diff --git a/packages/datasource-toolkit/src/interfaces/collection.ts b/packages/datasource-toolkit/src/interfaces/collection.ts index e0b0499ba2..ac271dfe06 100644 --- a/packages/datasource-toolkit/src/interfaces/collection.ts +++ b/packages/datasource-toolkit/src/interfaces/collection.ts @@ -35,7 +35,9 @@ export interface Collection { name: string, formValues: RecordData, filter?: Filter, - url?: string, + additionalInformation?: { + webAppURL: URL; + }, ): Promise; getForm(