From 6a8d22d2faa8b3a8c93f1ed378cac09c63215f3e Mon Sep 17 00:00:00 2001 From: Rupenieks Date: Sun, 2 Aug 2020 20:23:53 +0100 Subject: [PATCH] :zap: Fixed return values from CrateDB update function --- packages/nodes-base/nodes/CrateDb/CrateDb.node.ts | 12 +++++++----- .../nodes/Postgres/Postgres.node.functions.ts | 2 +- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/packages/nodes-base/nodes/CrateDb/CrateDb.node.ts b/packages/nodes-base/nodes/CrateDb/CrateDb.node.ts index 9175fc431d..b4ac194e3b 100644 --- a/packages/nodes-base/nodes/CrateDb/CrateDb.node.ts +++ b/packages/nodes-base/nodes/CrateDb/CrateDb.node.ts @@ -3,7 +3,7 @@ import { IDataObject, INodeExecutionData, INodeType, INodeTypeDescription } from import * as pgPromise from 'pg-promise'; -import { pgInsert, pgQuery, pgUpdate } from '../Postgres/Postgres.node.functions'; +import { pgInsert, pgQuery, pgUpdate, getItemCopy } from '../Postgres/Postgres.node.functions'; export class CrateDb implements INodeType { description: INodeTypeDescription = { @@ -233,6 +233,7 @@ export class CrateDb implements INodeType { const updateKey = this.getNodeParameter('updateKey', 0) as string; const queries : string[] = []; + const updatedKeys : string[] = []; let updateKeyValue : string | number; let columns : string[] = []; @@ -255,15 +256,16 @@ export class CrateDb implements INodeType { throw new Error('No value found for update key!'); } + updatedKeys.push(updateKeyValue as string); + const query = `UPDATE "${tableName}" SET ${setOperations.join(',')} WHERE ${updateKey} = ${updateKeyValue};`; queries.push(query); }); + await db.any(pgp.helpers.concat(queries)); - - const returnedItems = await db.any(`SELECT ${columns.join(',')} from ${tableName}`); - - returnItems = this.helpers.returnJsonArray(returnedItems as IDataObject[]); + + returnItems = this.helpers.returnJsonArray(getItemCopy(items, columns) as IDataObject[]); } else { await pgp.end(); throw new Error(`The operation "${operation}" is not supported!`); diff --git a/packages/nodes-base/nodes/Postgres/Postgres.node.functions.ts b/packages/nodes-base/nodes/Postgres/Postgres.node.functions.ts index 4dae3a64c1..0e7f738277 100644 --- a/packages/nodes-base/nodes/Postgres/Postgres.node.functions.ts +++ b/packages/nodes-base/nodes/Postgres/Postgres.node.functions.ts @@ -10,7 +10,7 @@ import pg = require('pg-promise/typescript/pg-subset'); * @param {string[]} properties The properties it should include * @returns */ -function getItemCopy(items: INodeExecutionData[], properties: string[]): IDataObject[] { +export function getItemCopy(items: INodeExecutionData[], properties: string[]): IDataObject[] { // Prepare the data to insert and copy it to be returned let newItem: IDataObject; return items.map(item => {