n8n/packages/nodes-base/nodes/Zoho/descriptions/ContactDescription.ts

591 lines
10 KiB
TypeScript
Raw Normal View History

:zap: Expand Zoho node (#1763) * :zap: Initial refactor of Zoho node * :zap: Refactor out extra credentials parameter * :fire: Remove unused filters * :zap: Fix date of birth fields * :zap: Fix param casing * :zap: Adjust param types * :zap: Adjust invoice operations * :zap: Refactor types in adjusters * :zap: Add product resource * :zap: Refactor product details field * :zap: Adjust purchase order params * :zap: Adjust quote params * :zap: Adjust sales orders params * :fire: Remove old unused files * :zap: Add vendor resource * :zap: Fix minor details * :zap: Implement continueOnFail * :bug: Fix empty response for getAll * :zap: Simplify response for single item * :fire: Remove unused import * :hammer: Restore old node name * :zap: Prevent request on empty update * :zap: Apply Dali's suggestions * :zap: Improvements * :zap: Add filters for lead:getAll * :zap: Add upsert to all resources * :zap: Add filters to all getAll operations * :hammer: Restore continue on fail * :hammer: Refactor upsert addition * :hammer: Refactor getFields for readability * :zap: Add custom fields to all create-update ops * :zap: Implement custom fields adjuster * :fire: Remove logging * :shirt: Appease linter * :shirt: Refactor type helper for linter * :zap: Fix refactored type * :hammer: Refactor reduce for simplicity * :zap: Fix vendor:getAll filter options * :zap: Fix custom fields for product operations * :zap: Make sort_by into options param * :truck: Rename upsert operation * :pencil2: Add descriptions to upsert * :zap: Deduplicate system-defined check fields * :hammer: Re-order address fields * :pencil2: Generalize references in getAll fields * :fire: Remove extra comma * :zap: Make getFields helper more readable * :pencil2: Touch up description for account ID * :fire: Remove currency from contacts * :hammer: Resort emails and phones for contact * :bug: Fix sales cycle duration param type * :pencil2: Clarify descriptions with percentages * :hammer: Reorder total fields * :pencil2: Clarify percentages for discounts * :pencil2: Clarify percentages for commissions * :hammer: Convert currency to picklist * :pencil2: Add documentation links * :zap: Add resource loaders for picklists * :zap: Fix build * :hammer: Refactor product details * :zap: Add resolve data to all resources * :zap: Change resolve data toggle default * :zap: Restore lead:getFields operation * :fire: Remove upsert descriptions * :hammer: Change casing for upsert operations * :zap: Add operation descriptions * :hammer: Restore makeResolve default value * :hammer: Return nested details * :zap: Reposition Resolve Data toggles * :pencil2: Document breaking changes * Revert "Reposition Resolve Data toggles" This reverts commit 72ac41780b3ebec9cc6a5bf527e154ffe6ed884a. * :zap: Improvements Co-authored-by: ricardo <ricardoespinoza105@gmail.com>
2021-07-02 14:34:12 -07:00
import {
INodeProperties,
} from 'n8n-workflow';
import {
currencies,
mailingAddress,
makeCustomFieldsFixedCollection,
makeGetAllFields,
otherAddress,
} from './SharedFields';
export const contactOperations = [
{
displayName: 'Operation',
name: 'operation',
type: 'options',
displayOptions: {
show: {
resource: [
'contact',
],
},
},
options: [
{
name: 'Create',
value: 'create',
description: 'Create a contact',
},
{
name: 'Create or Update',
value: 'upsert',
description: 'Create a new record, or update the current one if it already exists (upsert)',
},
{
name: 'Delete',
value: 'delete',
description: 'Delete a contact',
},
{
name: 'Get',
value: 'get',
description: 'Get a contact',
},
{
name: 'Get All',
value: 'getAll',
description: 'Get all contacts',
},
{
name: 'Update',
value: 'update',
description: 'Update a contact',
},
],
default: 'create',
description: 'Operation to perform',
},
] as INodeProperties[];
export const contactFields = [
// ----------------------------------------
// contact: create
// ----------------------------------------
{
displayName: 'Last Name',
name: 'lastName',
type: 'string',
required: true,
default: '',
displayOptions: {
show: {
resource: [
'contact',
],
operation: [
'create',
],
},
},
},
{
displayName: 'Additional Fields',
name: 'additionalFields',
type: 'collection',
placeholder: 'Add Field',
default: {},
displayOptions: {
show: {
resource: [
'contact',
],
operation: [
'create',
],
},
},
options: [
{
displayName: 'Assistant',
name: 'Assistant',
type: 'string',
default: '',
description: 'Name of the contacts assistant.',
},
makeCustomFieldsFixedCollection('contact'),
{
displayName: 'Date of Birth',
name: 'Date_of_Birth',
type: 'dateTime',
default: '',
},
{
displayName: 'Department',
name: 'Department',
type: 'string',
default: '',
description: 'Company department to which the contact belongs.',
},
{
displayName: 'Description',
name: 'Description',
type: 'string',
default: '',
},
{
displayName: 'Email (Primary)',
name: 'Email',
type: 'string',
default: '',
},
{
displayName: 'Email (Secondary)',
name: 'Secondary_Email',
type: 'string',
default: '',
},
{
displayName: 'Fax',
name: 'Fax',
type: 'string',
default: '',
},
{
displayName: 'First Name',
name: 'First_Name',
type: 'string',
default: '',
},
{
displayName: 'Full Name',
name: 'Full_Name',
type: 'string',
default: '',
},
mailingAddress,
{
displayName: 'Mobile',
name: 'Mobile',
type: 'string',
default: '',
},
otherAddress,
{
displayName: 'Phone',
name: 'Phone',
type: 'string',
default: '',
},
{
displayName: 'Phone (Assistant)',
name: 'Asst_Phone',
type: 'string',
default: '',
description: 'Phone number of the contacts assistant.',
},
{
displayName: 'Phone (Home)',
name: 'Home_Phone',
type: 'string',
default: '',
},
{
displayName: 'Phone (Other)',
name: 'Other_Phone',
type: 'string',
default: '',
},
{
displayName: 'Salutation',
name: 'Salutation',
type: 'string',
default: '',
},
{
displayName: 'Skype ID',
name: 'Skype_ID',
type: 'string',
default: '',
},
{
displayName: 'Title',
name: 'Title',
type: 'string',
default: '',
description: 'Position of the contact at their company.',
},
{
displayName: 'Twitter',
name: 'Twitter',
type: 'string',
default: '',
},
],
},
// ----------------------------------------
// contact: upsert
// ----------------------------------------
{
displayName: 'Last Name',
name: 'lastName',
type: 'string',
required: true,
default: '',
displayOptions: {
show: {
resource: [
'contact',
],
operation: [
'upsert',
],
},
},
},
{
displayName: 'Additional Fields',
name: 'additionalFields',
type: 'collection',
placeholder: 'Add Field',
default: {},
displayOptions: {
show: {
resource: [
'contact',
],
operation: [
'upsert',
],
},
},
options: [
{
displayName: 'Assistant',
name: 'Assistant',
type: 'string',
default: '',
description: 'Name of the contacts assistant.',
},
makeCustomFieldsFixedCollection('contact'),
{
displayName: 'Date of Birth',
name: 'Date_of_Birth',
type: 'dateTime',
default: '',
},
{
displayName: 'Department',
name: 'Department',
type: 'string',
default: '',
description: 'Company department to which the contact belongs.',
},
{
displayName: 'Description',
name: 'Description',
type: 'string',
default: '',
},
{
displayName: 'Email (Primary)',
name: 'Email',
type: 'string',
default: '',
description: 'Email of the contact. If a record with this email exists it will be updated, otherwise a new one will be created.',
},
{
displayName: 'Email (Secondary)',
name: 'Secondary_Email',
type: 'string',
default: '',
},
{
displayName: 'Fax',
name: 'Fax',
type: 'string',
default: '',
},
{
displayName: 'First Name',
name: 'First_Name',
type: 'string',
default: '',
},
{
displayName: 'Full Name',
name: 'Full_Name',
type: 'string',
default: '',
},
mailingAddress,
{
displayName: 'Mobile',
name: 'Mobile',
type: 'string',
default: '',
},
otherAddress,
{
displayName: 'Phone',
name: 'Phone',
type: 'string',
default: '',
},
{
displayName: 'Phone (Assistant)',
name: 'Asst_Phone',
type: 'string',
default: '',
description: 'Phone number of the contacts assistant.',
},
{
displayName: 'Phone (Home)',
name: 'Home_Phone',
type: 'string',
default: '',
},
{
displayName: 'Phone (Other)',
name: 'Other_Phone',
type: 'string',
default: '',
},
{
displayName: 'Salutation',
name: 'Salutation',
type: 'string',
default: '',
},
{
displayName: 'Skype ID',
name: 'Skype_ID',
type: 'string',
default: '',
},
{
displayName: 'Title',
name: 'Title',
type: 'string',
default: '',
description: 'Position of the contact at their company.',
},
{
displayName: 'Twitter',
name: 'Twitter',
type: 'string',
default: '',
},
],
},
// ----------------------------------------
// contact: delete
// ----------------------------------------
{
displayName: 'Contact ID',
name: 'contactId',
description: 'ID of the contact to delete.',
type: 'string',
required: true,
default: '',
displayOptions: {
show: {
resource: [
'contact',
],
operation: [
'delete',
],
},
},
},
// ----------------------------------------
// contact: get
// ----------------------------------------
{
displayName: 'Contact ID',
name: 'contactId',
description: 'ID of the contact to retrieve.',
type: 'string',
required: true,
default: '',
displayOptions: {
show: {
resource: [
'contact',
],
operation: [
'get',
],
},
},
},
// ----------------------------------------
// contact: getAll
// ----------------------------------------
...makeGetAllFields('contact'),
// ----------------------------------------
// contact: update
// ----------------------------------------
{
displayName: 'Contact ID',
name: 'contactId',
description: 'ID of the contact to update.',
type: 'string',
required: true,
default: '',
displayOptions: {
show: {
resource: [
'contact',
],
operation: [
'update',
],
},
},
},
{
displayName: 'Update Fields',
name: 'updateFields',
type: 'collection',
placeholder: 'Add Field',
default: {},
displayOptions: {
show: {
resource: [
'contact',
],
operation: [
'update',
],
},
},
options: [
{
displayName: 'Assistant',
name: 'Assistant',
type: 'string',
default: '',
},
{
displayName: 'Assistants Phone',
name: 'Asst_Phone',
type: 'string',
default: '',
description: 'Phone number of the contacts assistant.',
},
{
displayName: 'Currency',
name: 'Currency',
type: 'options',
default: 'USD',
description: 'Symbol of the currency in which revenue is generated.',
options: currencies,
},
makeCustomFieldsFixedCollection('contact'),
{
displayName: 'Date of Birth',
name: 'Date_of_Birth',
type: 'dateTime',
default: '',
},
{
displayName: 'Department',
name: 'Department',
type: 'string',
default: '',
},
{
displayName: 'Description',
name: 'Description',
type: 'string',
default: '',
},
{
displayName: 'Email (Primary)',
name: 'Email',
type: 'string',
default: '',
},
{
displayName: 'Email (Secondary)',
name: 'Secondary_Email',
type: 'string',
default: '',
},
{
displayName: 'Fax',
name: 'Fax',
type: 'string',
default: '',
},
{
displayName: 'First Name',
name: 'First_Name',
type: 'string',
default: '',
},
{
displayName: 'Full Name',
name: 'Full_Name',
type: 'string',
default: '',
},
{
displayName: 'Home Phone',
name: 'Home_Phone',
type: 'string',
default: '',
},
{
displayName: 'Last Name',
name: 'Last_Name',
type: 'string',
default: '',
},
mailingAddress,
{
displayName: 'Mobile',
name: 'Mobile',
type: 'string',
default: '',
},
otherAddress,
{
displayName: 'Other Phone',
name: 'Other_Phone',
type: 'string',
default: '',
},
{
displayName: 'Phone',
name: 'Phone',
type: 'string',
default: '',
},
{
displayName: 'Salutation',
name: 'Salutation',
type: 'string',
default: '',
},
{
displayName: 'Skype ID',
name: 'Skype_ID',
type: 'string',
default: '',
},
{
displayName: 'Title',
name: 'Title',
type: 'string',
default: '',
description: 'Position of the contact at their company.',
},
{
displayName: 'Twitter',
name: 'Twitter',
type: 'string',
default: '',
},
],
},
] as INodeProperties[];