UNPKG

@progtechbr/n8n-nodes-rdsme

Version:

Send events through API to RD Station Marketing para Ecommerce

57 lines (48 loc) 1.33 kB
import type { OptionsWithUri } from 'request'; import type { IDataObject, IExecuteFunctions, IExecuteSingleFunctions, IHookFunctions, ILoadOptionsFunctions, IOAuth2Options, JsonObject, } from 'n8n-workflow'; import { NodeApiError } from 'n8n-workflow'; import { BASE_API_URL } from './GenericConstants'; type N8nThis = IExecuteFunctions | IExecuteSingleFunctions | ILoadOptionsFunctions | IHookFunctions; export async function rdStationApiRequest( this: N8nThis, method: string, resource: string, body: IDataObject = {}, qs: IDataObject = {}, uri?: string, optionOverrides: IDataObject = {}, ): Promise<any> { const endpoint = (uri ?? `${BASE_API_URL}/platform${resource}`) as string; let options: OptionsWithUri = { method, uri: endpoint, qs, headers: { 'Content-Type': 'application/json', 'Accept': 'application/json', }, json: true, ...optionOverrides, }; if (Object.keys(body).length > 0) { options.body = body; } const oAuth2Options: IOAuth2Options = { tokenType: 'Bearer', includeCredentialsOnRefreshOnBody: true, }; try { // @ts-ignore: helpers context is not well typed return await this.helpers.requestOAuth2.call(this, 'rdsmEcommerceOAuth2Api', options, oAuth2Options); } catch (error) { throw new NodeApiError(this.getNode(), error as JsonObject); } }