From 69072e1646585efec2c0ff663809fbb6745998c7 Mon Sep 17 00:00:00 2001 From: Ivan Lebedev Date: Mon, 29 Nov 2021 01:25:38 +0300 Subject: [PATCH 1/3] Fixed due_datetime formatting Signed-off-by: Ivan Lebedev --- packages/nodes-base/nodes/Todoist/GenericFunctions.ts | 8 ++++++++ packages/nodes-base/nodes/Todoist/Todoist.node.ts | 5 +++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/packages/nodes-base/nodes/Todoist/GenericFunctions.ts b/packages/nodes-base/nodes/Todoist/GenericFunctions.ts index bd09118daee98..e3421be25cfb1 100644 --- a/packages/nodes-base/nodes/Todoist/GenericFunctions.ts +++ b/packages/nodes-base/nodes/Todoist/GenericFunctions.ts @@ -6,11 +6,19 @@ import { IExecuteFunctions, IHookFunctions, ILoadOptionsFunctions, + returnJsonArray, } from 'n8n-core'; import { IDataObject, NodeApiError, } from 'n8n-workflow'; +import { Console } from 'console'; + +export function FormatDueDatetime(ISOString: string): string { + // Assuming that the problem with incorrect date format was caused by milliseconds + // Replacing the last 5 characters of ISO-formatted string with just Z char + return ISOString.replace(new RegExp('.000Z$'), 'Z'); +} export async function todoistApiRequest( this: diff --git a/packages/nodes-base/nodes/Todoist/Todoist.node.ts b/packages/nodes-base/nodes/Todoist/Todoist.node.ts index a4ebc6fe2dc9a..66e1ece89d483 100644 --- a/packages/nodes-base/nodes/Todoist/Todoist.node.ts +++ b/packages/nodes-base/nodes/Todoist/Todoist.node.ts @@ -13,6 +13,7 @@ import { import { todoistApiRequest, + FormatDueDatetime, } from './GenericFunctions'; interface IBodyCreateTask { @@ -573,7 +574,7 @@ export class Todoist implements INodeType { } if (options.dueDateTime) { - body.due_datetime = options.dueDateTime as string; + body.due_datetime = FormatDueDatetime(options.dueDateTime as string); } if (options.dueString) { @@ -670,7 +671,7 @@ export class Todoist implements INodeType { } if (updateFields.dueDateTime) { - body.due_datetime = updateFields.dueDateTime as string; + body.due_datetime = FormatDueDatetime(updateFields.dueDateTime as string); } if (updateFields.dueString) { From 0f3769fccdbe95a3c9ede216536fcb4cf0b244bd Mon Sep 17 00:00:00 2001 From: Ivan Lebedev Date: Mon, 29 Nov 2021 14:07:16 +0300 Subject: [PATCH 2/3] Option to specify due_string language Signed-off-by: Ivan Lebedev --- .../nodes-base/nodes/Todoist/Todoist.node.ts | 24 ++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/packages/nodes-base/nodes/Todoist/Todoist.node.ts b/packages/nodes-base/nodes/Todoist/Todoist.node.ts index 66e1ece89d483..edc5c4fcce374 100644 --- a/packages/nodes-base/nodes/Todoist/Todoist.node.ts +++ b/packages/nodes-base/nodes/Todoist/Todoist.node.ts @@ -277,6 +277,13 @@ export class Todoist implements INodeType { default: '', description: 'Human defined task due date (ex.: “next Monday”, “Tomorrow”). Value is set using local (not UTC) time.', }, + { + displayName: 'Due String Locale', + name: 'dueLang', + type: 'string', + default: '', + description: '2-letter code specifying language in case due_string is not written in English.', + }, { displayName: 'Priority', name: 'priority', @@ -358,7 +365,7 @@ export class Todoist implements INodeType { ], operation: [ 'getAll', - ], + ], }, }, options: [ @@ -450,6 +457,13 @@ export class Todoist implements INodeType { default: '', description: 'Human defined task due date (ex.: “next Monday”, “Tomorrow”). Value is set using local (not UTC) time.', }, + { + displayName: 'Due String Locale', + name: 'dueLang', + type: 'string', + default: '', + description: '2-letter code specifying language in case due_string is not written in English.', + }, { displayName: 'Labels', name: 'labels', @@ -581,6 +595,10 @@ export class Todoist implements INodeType { body.due_string = options.dueString as string; } + if (options.dueLang) { + body.due_lang = options.dueLang as string; + } + if (labels !== undefined && labels.length !== 0) { body.label_ids = labels; } @@ -678,6 +696,10 @@ export class Todoist implements INodeType { body.due_string = updateFields.dueString as string; } + if (updateFields.dueLang) { + body.due_lang = updateFields.dueLang as string; + } + if (updateFields.labels !== undefined && Array.isArray(updateFields.labels) && updateFields.labels.length !== 0) { From 5a4210e9f26b5eef476ab7701a6f68ead1f2edea Mon Sep 17 00:00:00 2001 From: Ivan Lebedev Date: Thu, 9 Dec 2021 01:02:06 +0300 Subject: [PATCH 3/3] Removed debug imports Signed-off-by: Ivan Lebedev --- packages/nodes-base/nodes/Todoist/GenericFunctions.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/packages/nodes-base/nodes/Todoist/GenericFunctions.ts b/packages/nodes-base/nodes/Todoist/GenericFunctions.ts index e3421be25cfb1..a8658a42db122 100644 --- a/packages/nodes-base/nodes/Todoist/GenericFunctions.ts +++ b/packages/nodes-base/nodes/Todoist/GenericFunctions.ts @@ -6,13 +6,11 @@ import { IExecuteFunctions, IHookFunctions, ILoadOptionsFunctions, - returnJsonArray, } from 'n8n-core'; import { IDataObject, NodeApiError, } from 'n8n-workflow'; -import { Console } from 'console'; export function FormatDueDatetime(ISOString: string): string { // Assuming that the problem with incorrect date format was caused by milliseconds