Skip to content

Commit

Permalink
fix(Metabase Node): Fix issue with question results not correctly bei…
Browse files Browse the repository at this point in the history
…ng returned (#5665)
  • Loading branch information
Joffcom authored Mar 14, 2023
1 parent 8fe34f5 commit d1e3c19
Showing 1 changed file with 27 additions and 38 deletions.
65 changes: 27 additions & 38 deletions packages/nodes-base/nodes/Metabase/QuestionsDescription.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,4 @@
import type {
IDataObject,
IExecuteSingleFunctions,
IN8nHttpFullResponse,
INodeExecutionData,
INodeProperties,
} from 'n8n-workflow';
import type { IDataObject, INodeProperties } from 'n8n-workflow';
import { jsonParse } from 'n8n-workflow';

export const questionsOperations: INodeProperties[] = [
Expand Down Expand Up @@ -56,43 +50,38 @@ export const questionsOperations: INodeProperties[] = [
},
output: {
postReceive: [
// @ts-ignore
async function (
this: IExecuteSingleFunctions,
_items: INodeExecutionData[],
response: IN8nHttpFullResponse,
): Promise<INodeExecutionData[]> {
const items = _items;
const result: INodeExecutionData[] = [];
for (let i = 0; i < items.length; i++) {
const newItem: INodeExecutionData = {
json: items[i].json,
binary: {},
};
async function (this, items, responseData) {
const datatype = this.getNodeParameter('format') as string;

if (items[i].binary !== undefined && newItem.binary) {
Object.assign(newItem.binary, items[i].binary);
}
items[i] = newItem;
if (this.getNode().parameters.format === 'json') {
items[i].json = jsonParse<IDataObject[]>(items[i].json as unknown as string)[0];
console.log(items[i].json);
delete items[i].binary;
} else {
items[i].binary!.data = await this.helpers.prepareBinaryData(
response.body as Buffer,
'data',
response.headers['content-type'] as string,
);
}
result.push(items[i]);
if (datatype !== 'json') {
const binaryData = await this.helpers.prepareBinaryData(
responseData.body as Buffer,
'data',
responseData.headers['content-type'] as string,
);

// Transform items
items = items.map((item) => {
item.json = {};
item.binary = { ['data']: binaryData };
return item;
});
} else {
const results = jsonParse<IDataObject[]>(responseData.body as unknown as string);
items = results.map((result) => {
return {
json: {
...result,
},
};
});
}
return result;
return items;
},
],
},
},
action: 'Result Data a questions',
action: 'Get the results from a question',
},
],
default: 'getAll',
Expand Down

0 comments on commit d1e3c19

Please sign in to comment.