import { OptionsWithUri, } from 'request'; import { IExecuteFunctions, ILoadOptionsFunctions, } from 'n8n-core'; import { IDataObject, IHookFunctions, IWebhookFunctions, NodeApiError, NodeOperationError, } from 'n8n-workflow'; export async function linearApiRequest(this: IExecuteFunctions | IWebhookFunctions | IHookFunctions | ILoadOptionsFunctions, body: any = {}, option: IDataObject = {}): Promise { // tslint:disable-line:no-any const credentials = await this.getCredentials('linearApi') as IDataObject; const endpoint = 'https://api.linear.app/graphql'; let options: OptionsWithUri = { headers: { 'Content-Type': 'application/json', Authorization: credentials.apiKey, }, method: 'POST', body, uri: endpoint, json: true, }; options = Object.assign({}, options, option); try { return await this.helpers.request!(options); } catch (error) { throw new NodeApiError(this.getNode(), error); } } export function capitalizeFirstLetter(data: string) { return data.charAt(0).toUpperCase() + data.slice(1); }