Skip to content

Commit 509e6e1

Browse files
committed
Merge branch 'updates-for-meastro' into responsive-for-meastro
2 parents 3bc9920 + 660554d commit 509e6e1

File tree

7 files changed

+23
-19
lines changed

7 files changed

+23
-19
lines changed

.env.example

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,4 +16,4 @@ DS_CLIENT_ID={YOUR_DS_CLIENT_ID} # An Integration key of your app. Located on th
1616
DS_CLIENT_SECRET={YOUR_DS_CLIENT_SECRET}
1717
TARGET_ACCOUNT_ID=false # If you have your accound id set here, if not it's false by default.
1818
SESSION_SECRET={YOUR_SESSION_SECRET} # A unique string of your choice that is used to encrypt the session cookie.
19-
MAESTRO_API=https://apps-d.docusign.com/api/maestro/v1 # Maestro API, which is used for maestro functionality
19+
MAESTRO_API=https://api-d.docusign.com/v1 # Maestro API, which is used for maestro functionality

client/src/components/TriggerForm/TriggerForm.jsx

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -49,14 +49,7 @@ const TriggerForm = ({ workflowId, templateType }) => {
4949
case "-":
5050
try {
5151
api.workflows.getWorkflowTriggerRequirements(workflowId).then(data => {
52-
const result = Object.values(data.data.workflowDefinition.trigger.input.payload)
53-
.filter(entry => entry.propertyName !== "id" && entry.propertyName !== "dacId")
54-
.map(entry => ({
55-
field_name: entry.propertyName,
56-
field_data_type: entry.type
57-
}));
58-
59-
setRelevantFormFields(generateDynamicForm(result, 'Custom'));
52+
setRelevantFormFields(generateDynamicForm(data.data.trigger_input_schema, 'Custom'));
6053
});
6154
} catch (error) {
6255
console.error("Failed to fetch trigger requirements:", error);
@@ -104,7 +97,7 @@ const TriggerForm = ({ workflowId, templateType }) => {
10497
}
10598

10699
const { data: triggeredWorkflow } = await api.workflows.triggerWorkflow(workflowId, templateType, body);
107-
setWorkflowInstanceUrl(triggeredWorkflow.workflowInstanceUrl);
100+
setWorkflowInstanceUrl(triggeredWorkflow.instance_url);
108101

109102
// Update workflowDefinitions. "...workflow" creates new workflow-object to avoid mutation in redux
110103
const updatedWorkflowDefinitions = workflows.map(w => {

client/src/pages/TriggerWorkflow/TriggerWorkflow.jsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ const TriggerWorkflow = () => {
2424
const getWorkflowDefinitions = async () => {
2525
setWorkflowListLoading(true);
2626
const definitionsResponse = await api.workflows.getWorkflowDefinitions();
27-
const workflowDefinitions = definitionsResponse.data.value.filter(definition => definition.status !== 'inactive')
27+
const workflowDefinitions = definitionsResponse.data.data.workflows.filter(definition => definition.status !== 'inactive')
2828
.map(definition => {
2929
if (workflows.length) {
3030
const foundWorkflow = workflows.find(workflow => workflow.id === definition.id);

server/api/apiFactory.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,12 +39,12 @@ const createMaestroApi = (axios, basePath, accountId, accessToken) => {
3939
const api = createAPI(axios, accessToken);
4040

4141
const getWorkflowDefinitions = async params => {
42-
const response = await api.get(`${basePath}/accounts/${accountId}/management/workflow_definitions`, { params });
42+
const response = await api.get(`${basePath}/accounts/${accountId}/workflows`, { params });
4343
return response.data;
4444
};
4545

4646
const getTriggerRequirements = async workflowId => {
47-
const response = await api.get(`${basePath}/accounts/${accountId}/management/workflow_definitions/${workflowId}`);
47+
const response = await api.get(`${basePath}/accounts/${accountId}/workflows/${workflowId}/trigger-requirements`);
4848
return response.data;
4949
};
5050

server/controllers/workflowsController.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ const docusign = require('docusign-esign');
1515
const config = require('../config');
1616
const WorkflowsService = require('../services/workflowsService');
1717
const createPrefixedLogger = require('../utils/logger');
18+
const { getPayloadBySchema } = require('../utils/utils');
1819

1920
const oAuth = docusign.ApiClient.OAuth;
2021
const restApi = docusign.ApiClient.RestApi;
@@ -75,7 +76,8 @@ class WorkflowsController {
7576

7677
try {
7778
const triggerRequirements = await WorkflowsService.getWorkflowTriggerRequirements(args);
78-
const result = await WorkflowsService.triggerWorkflowInstance(args, body, triggerRequirements);
79+
const payload = getPayloadBySchema(body, triggerRequirements.trigger_input_schema);
80+
const result = await WorkflowsService.triggerWorkflowInstance(args, payload, triggerRequirements);
7981
res.status(200).send(result);
8082
} catch (error) {
8183
this.handleErrorResponse(error, res);

server/services/workflowsService.js

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,10 @@ class WorkflowsService {
3131
static triggerWorkflowInstance = async (args, payload, triggerRequirements) => {
3232
const api = initMaestroApi(args.accountId, args.basePath, args.accessToken);
3333
const triggerPayload = {
34-
participant: {},
35-
metadata: {},
36-
payload,
34+
instance_name: '',
35+
trigger_inputs: payload,
3736
};
38-
const triggerResponse = await api.triggerWorkflow(triggerPayload, triggerRequirements.triggerUrl);
37+
const triggerResponse = await api.triggerWorkflow(triggerPayload, triggerRequirements.trigger_http_config.url);
3938

4039
return triggerResponse;
4140
};

server/utils/utils.js

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,14 @@ const extractPortFromUrl = url => {
1515
return null;
1616
};
1717

18-
module.exports = { getParameterValueFromUrl, extractPortFromUrl };
18+
const getPayloadBySchema = (data, schema) => {
19+
return schema.reduce((acc, field) => {
20+
const fieldName = field.field_name;
21+
if (fieldName in data) {
22+
acc[fieldName] = data[fieldName];
23+
}
24+
return acc;
25+
}, {});
26+
};
27+
28+
module.exports = { getParameterValueFromUrl, extractPortFromUrl, getPayloadBySchema };

0 commit comments

Comments
 (0)