n8n/packages/nodes-base/nodes/Zoho/descriptions/ContactDescription.ts
Iván Ovejero 5f76a5dc72
Expand Zoho node (#1763)
*  Initial refactor of Zoho node

*  Refactor out extra credentials parameter

* 🔥 Remove unused filters

*  Fix date of birth fields

*  Fix param casing

*  Adjust param types

*  Adjust invoice operations

*  Refactor types in adjusters

*  Add product resource

*  Refactor product details field

*  Adjust purchase order params

*  Adjust quote params

*  Adjust sales orders params

* 🔥 Remove old unused files

*  Add vendor resource

*  Fix minor details

*  Implement continueOnFail

* 🐛 Fix empty response for getAll

*  Simplify response for single item

* 🔥 Remove unused import

* 🔨 Restore old node name

*  Prevent request on empty update

*  Apply Dali's suggestions

*  Improvements

*  Add filters for lead:getAll

*  Add upsert to all resources

*  Add filters to all getAll operations

* 🔨 Restore continue on fail

* 🔨 Refactor upsert addition

* 🔨 Refactor getFields for readability

*  Add custom fields to all create-update ops

*  Implement custom fields adjuster

* 🔥 Remove logging

* 👕 Appease linter

* 👕 Refactor type helper for linter

*  Fix refactored type

* 🔨 Refactor reduce for simplicity

*  Fix vendor:getAll filter options

*  Fix custom fields for product operations

*  Make sort_by into options param

* 🚚 Rename upsert operation

* ✏️ Add descriptions to upsert

*  Deduplicate system-defined check fields

* 🔨 Re-order address fields

* ✏️ Generalize references in getAll fields

* 🔥 Remove extra comma

*  Make getFields helper more readable

* ✏️ Touch up description for account ID

* 🔥 Remove currency from contacts

* 🔨 Resort emails and phones for contact

* 🐛 Fix sales cycle duration param type

* ✏️ Clarify descriptions with percentages

* 🔨 Reorder total fields

* ✏️ Clarify percentages for discounts

* ✏️ Clarify percentages for commissions

* 🔨 Convert currency to picklist

* ✏️ Add documentation links

*  Add resource loaders for picklists

*  Fix build

* 🔨 Refactor product details

*  Add resolve data to all resources

*  Change resolve data toggle default

*  Restore lead:getFields operation

* 🔥 Remove upsert descriptions

* 🔨 Change casing for upsert operations

*  Add operation descriptions

* 🔨 Restore makeResolve default value

* 🔨 Return nested details

*  Reposition Resolve Data toggles

* ✏️ Document breaking changes

* Revert "Reposition Resolve Data toggles"

This reverts commit 72ac41780b.

*  Improvements

Co-authored-by: ricardo <ricardoespinoza105@gmail.com>
2021-07-02 23:34:12 +02:00

591 lines
10 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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[];