Skip to content

Commit

Permalink
fix(KoboToolbox Node): fix hook logs not working correctly (n8n-io#4286)
Browse files Browse the repository at this point in the history
  • Loading branch information
Yann-J authored Oct 12, 2022
1 parent ce62d51 commit a55a98e
Show file tree
Hide file tree
Showing 2 changed files with 74 additions and 9 deletions.
72 changes: 66 additions & 6 deletions packages/nodes-base/nodes/KoBoToolbox/HookDescription.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,25 +22,25 @@ export const hookOperations: INodeProperties[] = [
name: 'Get Many',
value: 'getAll',
description: 'List many hooks on a form',
action: 'Get many hooks',
action: 'Get Many hooks',
},
{
name: 'Logs',
value: 'getLogs',
description: 'Get hook logs',
action: 'Logs a hook',
action: 'Get Logs for a hook',
},
{
name: 'Retry All',
value: 'retryAll',
description: 'Retry all failed attempts for a given hook',
action: 'Retry all hooks',
action: 'Retry All hooks',
},
{
name: 'Retry One',
value: 'retryOne',
description: 'Retry a specific hook',
action: 'Retry one hook',
action: 'Retry One hook',
},
],
default: 'getAll',
Expand Down Expand Up @@ -127,7 +127,7 @@ export const hookFields: INodeProperties[] = [
displayOptions: {
show: {
resource: ['hook'],
operation: ['getAll', 'getLogs'],
operation: ['getAll'],
},
},
description: 'Whether to return all results or only up to a given limit',
Expand All @@ -142,11 +142,71 @@ export const hookFields: INodeProperties[] = [
displayOptions: {
show: {
resource: ['hook'],
operation: ['getAll', 'getLogs'],
operation: ['getAll'],
returnAll: [false],
},
},
default: 1000,
description: 'Max number of results to return',
},
/* -------------------------------------------------------------------------- */
/* hook:getLogs */
/* -------------------------------------------------------------------------- */
{
displayName: 'Log Status',
name: 'status',
type: 'options',
displayOptions: {
show: {
resource: ['hook'],
operation: ['getLogs'],
},
},
default: '',
description: 'Only retrieve logs with a specific status',
options: [
{
name: 'All',
value: '',
},
{
name: 'Failed',
value: '0',
},
{
name: 'Pending',
value: '1',
},
{
name: 'Success',
value: '2',
},
],
},
{
displayName: 'Start Date',
name: 'startDate',
type: 'dateTime',
displayOptions: {
show: {
resource: ['hook'],
operation: ['getLogs'],
},
},
default: '',
description: 'Minimum date for the hook log to retrieve',
},
{
displayName: 'End Date',
name: 'endDate',
type: 'dateTime',
displayOptions: {
show: {
resource: ['hook'],
operation: ['getLogs'],
},
},
default: '',
description: 'Maximum date for the hook log to retrieve',
},
];
11 changes: 8 additions & 3 deletions packages/nodes-base/nodes/KoBoToolbox/KoBoToolbox.node.ts
Original file line number Diff line number Diff line change
Expand Up @@ -323,13 +323,17 @@ export class KoBoToolbox implements INodeType {
// Hook: getLogs
// ----------------------------------
const hookId = this.getNodeParameter('hookId', i) as string;
const startDate = this.getNodeParameter('startDate', i, null);
const endDate = this.getNodeParameter('endDate', i, null);
const status = this.getNodeParameter('status', i, null);

responseData = await koBoToolboxApiRequest.call(this, {
url: `/api/v2/assets/${formId}/hooks/${hookId}/logs/`,
qs: {
start: this.getNodeParameter('start', i, 0) as number,
limit: this.getNodeParameter('limit', i, 1000) as number,
...(startDate && { start: startDate }),
...(endDate && { end: endDate }),
...(status && { status }),
},
scroll: this.getNodeParameter('returnAll', i) as boolean,
});
}

Expand All @@ -342,6 +346,7 @@ export class KoBoToolbox implements INodeType {

responseData = [
await koBoToolboxApiRequest.call(this, {
method: 'PATCH',
url: `/api/v2/assets/${formId}/hooks/${hookId}/logs/${logId}/retry/`,
}),
];
Expand Down

0 comments on commit a55a98e

Please sign in to comment.