From 7ce2de0e7c141b62a2c3e40529371ab391936d53 Mon Sep 17 00:00:00 2001 From: Ricardo Espinoza Date: Fri, 2 Apr 2021 08:31:44 -0400 Subject: [PATCH] :bug: Fix issue sending the parameter project incorrectly (Invoiceninja) (#1619) When creating a task, the project parameter was being send 'project' but it must be 'project_id' --- .../nodes/InvoiceNinja/GenericFunctions.ts | 8 ++- .../nodes/InvoiceNinja/InvoiceNinja.node.ts | 57 +++++++++++------- .../nodes/InvoiceNinja/TaskInterface.ts | 2 +- .../nodes/InvoiceNinja/invoiceNinja.png | Bin 1109 -> 0 bytes .../nodes/InvoiceNinja/invoiceNinja.svg | 1 + 5 files changed, 44 insertions(+), 24 deletions(-) delete mode 100644 packages/nodes-base/nodes/InvoiceNinja/invoiceNinja.png create mode 100644 packages/nodes-base/nodes/InvoiceNinja/invoiceNinja.svg diff --git a/packages/nodes-base/nodes/InvoiceNinja/GenericFunctions.ts b/packages/nodes-base/nodes/InvoiceNinja/GenericFunctions.ts index dc9fabeb0..947be4d0c 100644 --- a/packages/nodes-base/nodes/InvoiceNinja/GenericFunctions.ts +++ b/packages/nodes-base/nodes/InvoiceNinja/GenericFunctions.ts @@ -1,4 +1,6 @@ -import { OptionsWithUri } from 'request'; +import { + OptionsWithUri, +} from 'request'; import { IExecuteFunctions, @@ -11,7 +13,9 @@ import { IDataObject, } from 'n8n-workflow'; -import { get } from 'lodash'; +import { + get, +} from 'lodash'; export async function invoiceNinjaApiRequest(this: IHookFunctions | IExecuteFunctions | IExecuteSingleFunctions | ILoadOptionsFunctions, method: string, endpoint: string, body: any = {}, query?: IDataObject, uri?: string): Promise { // tslint:disable-line:no-any const credentials = this.getCredentials('invoiceNinjaApi'); diff --git a/packages/nodes-base/nodes/InvoiceNinja/InvoiceNinja.node.ts b/packages/nodes-base/nodes/InvoiceNinja/InvoiceNinja.node.ts index 3979e165c..3327997f7 100644 --- a/packages/nodes-base/nodes/InvoiceNinja/InvoiceNinja.node.ts +++ b/packages/nodes-base/nodes/InvoiceNinja/InvoiceNinja.node.ts @@ -1,6 +1,7 @@ import { IExecuteFunctions, } from 'n8n-core'; + import { IDataObject, ILoadOptionsFunctions, @@ -9,63 +10,77 @@ import { INodeType, INodeTypeDescription, } from 'n8n-workflow'; + import { invoiceNinjaApiRequest, invoiceNinjaApiRequestAllItems, } from './GenericFunctions'; + import { clientFields, clientOperations, } from './ClientDescription'; + import { invoiceFields, invoiceOperations, } from './InvoiceDescription'; + import { IClient, IContact, } from './ClientInterface'; + import { countryCodes, - } from './ISOCountryCodes'; +} from './ISOCountryCodes'; + import { IInvoice, IItem, - } from './invoiceInterface'; +} from './invoiceInterface'; + import { taskFields, taskOperations, - } from './TaskDescription'; - import { +} from './TaskDescription'; + +import { ITask, - } from './TaskInterface'; - import { +} from './TaskInterface'; + +import { paymentFields, paymentOperations, - } from './PaymentDescription'; - import { +} from './PaymentDescription'; + +import { IPayment, - } from './PaymentInterface'; - import { +} from './PaymentInterface'; + +import { expenseFields, expenseOperations, - } from './ExpenseDescription'; - import { +} from './ExpenseDescription'; + +import { IExpense, - } from './ExpenseInterface'; - import { +} from './ExpenseInterface'; + +import { quoteFields, quoteOperations, - } from './QuoteDescription'; - import { +} from './QuoteDescription'; + +import { IQuote, - } from './QuoteInterface'; +} from './QuoteInterface'; export class InvoiceNinja implements INodeType { description: INodeTypeDescription = { displayName: 'Invoice Ninja', name: 'invoiceNinja', - icon: 'file:invoiceNinja.png', + icon: 'file:invoiceNinja.svg', group: ['output'], version: 1, subtitle: '={{$parameter["operation"] + ": " + $parameter["resource"]}}', @@ -462,7 +477,7 @@ export class InvoiceNinja implements INodeType { body.client_id = additionalFields.client as number; } if (additionalFields.project) { - body.project = additionalFields.project as number; + body.project_id = additionalFields.project as number; } if (additionalFields.customValue1) { body.custom_value1 = additionalFields.customValue1 as string; @@ -479,10 +494,10 @@ export class InvoiceNinja implements INodeType { for (const logValue of timeLogsValues) { let from = 0, to; if (logValue.startDate) { - from = new Date(logValue.startDate as string).getTime()/1000 as number; + from = new Date(logValue.startDate as string).getTime() / 1000 as number; } if (logValue.endDate) { - to = new Date(logValue.endDate as string).getTime()/1000 as number; + to = new Date(logValue.endDate as string).getTime() / 1000 as number; } if (logValue.duration) { to = from + (logValue.duration as number * 3600); diff --git a/packages/nodes-base/nodes/InvoiceNinja/TaskInterface.ts b/packages/nodes-base/nodes/InvoiceNinja/TaskInterface.ts index 383bed5d9..62ef311a6 100644 --- a/packages/nodes-base/nodes/InvoiceNinja/TaskInterface.ts +++ b/packages/nodes-base/nodes/InvoiceNinja/TaskInterface.ts @@ -3,6 +3,6 @@ export interface ITask { custom_value1?: string; custom_value2?: string; description?: string; - project?: number; + project_id?: number; time_log?: string; } diff --git a/packages/nodes-base/nodes/InvoiceNinja/invoiceNinja.png b/packages/nodes-base/nodes/InvoiceNinja/invoiceNinja.png deleted file mode 100644 index 50c5ac69ca294601d53c210b16683f5f1ed8c08b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1109 zcmeAS@N?(olHy`uVBq!ia0vp^HXzKw3=&b&bYNg$%n0xaaRqX@n3(Y(PG%N7vQ(G) z|NlSGNtVVYJsq8_3=ASXd=Kv5XJ=qswS4*eckdQ2Txe!!_~ZNc-8*+qoisT#D9F;( zjE9}$?wz~m&YoSnYSpai(D$ScT7N=l1MhzSS^^74NE z{Q3H|YexIEHu}e|s&p__l$>fx>nv zttGxQCmHdm=;rM;Fy5Bmv4Hao?d+T-{&-)U8z&E zyml`(+!H!WJndkyu(#OKnpHRD*w-8To?cS5)`NZ4oyp1HeHw1O(7L_qID_t0tHbM< zI-gxrSu5tT%}_b9oMEx=uGsmkYp#UsVVR+sar+*tQIrDz>>|02j~(+Ej-1$>Cb*ts zWrWI`&Kqo96^G_cI^W^myW@+Pfb(0gk1|45+|#3N4ozOBD7)1u#vjc1Is(uUl?95 zaK3R=nZ@S%(H#L&oHZ;?cM7MuYm~9XZ)j?8|7EacdcZT0GA-qJMyJd*FB0eMo}~56 z)@-}-#6RzvEN*H)PU1+7V)A-8KceEXDc{dOSDRj|NSsg0DN~DkaagbY@{614AJVlWCUj{?arvDzw3Tdi|rvL1>%V*EmP?eKny0@vZ zInvoice Ninja icon \ No newline at end of file