🐛 Fix issue sending parameter Opt In Reason on Keap Node (#1674)

This commit is contained in:
Ricardo Espinoza 2021-04-17 10:52:56 -04:00 committed by GitHub
parent 0c779de704
commit 3fe52c84d5
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 20 additions and 17 deletions

View file

@ -1,6 +1,6 @@
import { import {
OptionsWithUri, OptionsWithUri,
} from 'request'; } from 'request';
import { import {
IExecuteFunctions, IExecuteFunctions,
@ -15,7 +15,7 @@ import {
import { import {
snakeCase, snakeCase,
} from 'change-case'; } from 'change-case';
export async function keapApiRequest(this: IWebhookFunctions | IHookFunctions | IExecuteFunctions | ILoadOptionsFunctions, method: string, resource: string, body: any = {}, qs: IDataObject = {}, uri?: string, headers: IDataObject = {}, option: IDataObject = {}): Promise<any> { // tslint:disable-line:no-any export async function keapApiRequest(this: IWebhookFunctions | IHookFunctions | IExecuteFunctions | ILoadOptionsFunctions, method: string, resource: string, body: any = {}, qs: IDataObject = {}, uri?: string, headers: IDataObject = {}, option: IDataObject = {}): Promise<any> { // tslint:disable-line:no-any
let options: OptionsWithUri = { let options: OptionsWithUri = {
@ -43,7 +43,7 @@ export async function keapApiRequest(this: IWebhookFunctions | IHookFunctions |
} }
} }
export async function keapApiRequestAllItems(this: IHookFunctions| IExecuteFunctions | ILoadOptionsFunctions, propertyName: string, method: string, endpoint: string, body: any = {}, query: IDataObject = {}): Promise<any> { // tslint:disable-line:no-any export async function keapApiRequestAllItems(this: IHookFunctions | IExecuteFunctions | ILoadOptionsFunctions, propertyName: string, method: string, endpoint: string, body: any = {}, query: IDataObject = {}): Promise<any> { // tslint:disable-line:no-any
const returnData: IDataObject[] = []; const returnData: IDataObject[] = [];
@ -62,7 +62,7 @@ export async function keapApiRequestAllItems(this: IHookFunctions| IExecuteFunct
return returnData; return returnData;
} }
export function keysToSnakeCase(elements: IDataObject[] | IDataObject) : IDataObject[] { export function keysToSnakeCase(elements: IDataObject[] | IDataObject): IDataObject[] {
if (!Array.isArray(elements)) { if (!Array.isArray(elements)) {
elements = [elements]; elements = [elements];
} }

View file

@ -57,7 +57,7 @@ import {
import { import {
companyFields, companyFields,
companyOperations, companyOperations,
} from './CompanyDescription'; } from './CompanyDescription';
import { import {
IAddress, IAddress,
@ -78,9 +78,9 @@ import {
} from './ContactNoteInterface'; } from './ContactNoteInterface';
import { import {
IEcommerceOrder, IEcommerceOrder,
IItem, IItem,
IShippingAddress, IShippingAddress,
} from './EcommerceOrderInterface'; } from './EcommerceOrderInterface';
import { import {
@ -310,9 +310,9 @@ export class Keap implements INodeType {
keysToSnakeCase(additionalFields); keysToSnakeCase(additionalFields);
Object.assign(body, additionalFields); Object.assign(body, additionalFields);
if (addresses) { if (addresses) {
body.address = keysToSnakeCase(addresses)[0] ; body.address = keysToSnakeCase(addresses)[0];
} }
if (faxes) { if (faxes) {
body.fax_number = faxes[0]; body.fax_number = faxes[0];
} }
if (phones) { if (phones) {
@ -407,13 +407,16 @@ export class Keap implements INodeType {
if (additionalFields.companyId) { if (additionalFields.companyId) {
body.company = { id: additionalFields.companyId as number }; body.company = { id: additionalFields.companyId as number };
} }
if (additionalFields.optInReason) {
body.opt_in_reason = additionalFields.optInReason as string;
}
if (addresses) { if (addresses) {
body.addresses = keysToSnakeCase(addresses) as IAddress[]; body.addresses = keysToSnakeCase(addresses) as IAddress[];
} }
if (emails) { if (emails) {
body.email_addresses = emails as IEmailContact[]; body.email_addresses = emails as IEmailContact[];
} }
if (faxes) { if (faxes) {
body.fax_numbers = faxes as IFax[]; body.fax_numbers = faxes as IFax[];
} }
if (socialAccounts) { if (socialAccounts) {
@ -706,7 +709,7 @@ export class Keap implements INodeType {
attachments = attachmentsUi.attachmentsValues as IAttachment[]; attachments = attachmentsUi.attachmentsValues as IAttachment[];
} }
if (attachmentsUi.attachmentsBinary if (attachmentsUi.attachmentsBinary
&& (attachmentsUi.attachmentsBinary as IDataObject).length) { && (attachmentsUi.attachmentsBinary as IDataObject).length) {
if (items[i].binary === undefined) { if (items[i].binary === undefined) {
throw new NodeOperationError(this.getNode(), 'No binary data exists on item!'); throw new NodeOperationError(this.getNode(), 'No binary data exists on item!');