fix(Linear Node): Fix issue with single item not being returned (#5193)

This commit is contained in:
Jonathan Bennetts 2023-01-20 12:59:47 +00:00 committed by GitHub
parent 454375077f
commit e810966a3b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 36 additions and 34 deletions

View file

@ -1,4 +1,4 @@
import { ICredentialType, INodeProperties } from 'n8n-workflow';
import { IAuthenticateGeneric, ICredentialType, INodeProperties } from 'n8n-workflow';
export class LinearApi implements ICredentialType {
name = 'linearApi';
@ -16,4 +16,13 @@ export class LinearApi implements ICredentialType {
default: '',
},
];
authenticate: IAuthenticateGeneric = {
type: 'generic',
properties: {
headers: {
Authorization: '={{$credentials.apiKey}}',
},
},
};
}

View file

@ -22,14 +22,11 @@ export async function linearApiRequest(
body: any = {},
option: IDataObject = {},
): Promise<any> {
const credentials = await this.getCredentials('linearApi');
const endpoint = 'https://api.linear.app/graphql';
let options: OptionsWithUri = {
headers: {
'Content-Type': 'application/json',
Authorization: credentials.apiKey,
},
method: 'POST',
body,
@ -38,7 +35,7 @@ export async function linearApiRequest(
};
options = Object.assign({}, options, option);
try {
return await this.helpers.request(options);
return await this.helpers.requestWithAuthentication.call(this, 'linearApi', options);
} catch (error) {
throw new NodeApiError(this.getNode(), error as JsonObject);
}

View file

@ -202,7 +202,7 @@ export class Linear implements INodeType {
};
responseData = await linearApiRequest.call(this, body);
responseData = responseData.data?.issues?.nodes[0];
responseData = responseData.data.issue;
}
if (operation === 'getAll') {
const returnAll = this.getNodeParameter('returnAll', i);

View file

@ -93,34 +93,30 @@ export const query = {
}`;
},
getIssue() {
return `query Issue ($issueId: ID){
issues(filter: {
id: { eq: $issueId }
}) {
nodes {
return `query Issue($issueId: String!) {
issue(id: $issueId) {
id,
title,
priority,
archivedAt,
assignee {
id,
title,
priority
archivedAt
assignee {
id
displayName
}
state {
id
name
}
createdAt
creator {
id
displayName
}
description
dueDate
cycle {
id
name
}
displayName
}
state {
id
name
}
createdAt
creator {
id
displayName
}
description
dueDate
cycle {
id
name
}
}
}`;
@ -129,7 +125,7 @@ export const query = {
return `query Issue ($first: Int){
issues (first: $first){
nodes {
id,
id,
title,
priority
archivedAt