Browse Source

feat: support mustache tag in http request headers

Ahmad Kholid 3 years ago
parent
commit
753fe27f89

+ 5 - 2
src/background/workflowEngine/blocksHandler/handlerConditions.js

@@ -78,8 +78,11 @@ async function conditions({ data, outputs }, { prevBlockData, refData }) {
     data.conditions.forEach(({ type, value, compareValue }, index) => {
       if (isConditionMet) return;
 
-      const firstValue = mustacheReplacer(compareValue ?? prevData, refData);
-      const secondValue = mustacheReplacer(value, refData);
+      const firstValue = mustacheReplacer(
+        compareValue ?? prevData,
+        refData
+      ).value;
+      const secondValue = mustacheReplacer(value, refData).value;
 
       Object.assign(replacedValue, firstValue.list, secondValue.list);
 

+ 0 - 1
src/background/workflowEngine/blocksHandler/handlerJavascriptCode.js

@@ -23,7 +23,6 @@ export async function javascriptCode({ outputs, data, ...block }, { refData }) {
 
     const payload = { ...block, data, refData: { variables: {} } };
     if (data.code.includes('automaRefData')) payload.refData = refData;
-    console.log(data.code.includes('automaRefData'), payload);
 
     const result = await this._sendMessageToTab(payload);
 

+ 10 - 2
src/background/workflowEngine/blocksHandler/handlerWebhook.js

@@ -1,9 +1,10 @@
 import objectPath from 'object-path';
 import { isWhitespace } from '@/utils/helper';
 import { executeWebhook } from '@/utils/webhookUtil';
+import mustacheReplacer from '@/utils/referenceData/mustacheReplacer';
 import { getBlockConnection } from '../helper';
 
-export async function webhook({ data, outputs }) {
+export async function webhook({ data, outputs }, { refData }) {
   const nextBlockId = getBlockConnection({ outputs });
   const fallbackOutput = getBlockConnection({ outputs }, 2);
 
@@ -11,7 +12,14 @@ export async function webhook({ data, outputs }) {
     if (isWhitespace(data.url)) throw new Error('url-empty');
     if (!data.url.startsWith('http')) throw new Error('invalid-url');
 
-    const response = await executeWebhook(data);
+    const newHeaders = [];
+    data.headers.forEach(({ value, name }) => {
+      const newValue = mustacheReplacer(value, refData).value;
+
+      newHeaders.push({ name, value: newValue });
+    });
+
+    const response = await executeWebhook({ ...data, headers: newHeaders });
 
     if (!response.ok) {
       if (fallbackOutput.connections.length > 0) {