n8n/packages/nodes-base/nodes/HelpScout/CustomerDescription.ts
Iván Ovejero 6dcdb30bf4
refactor: Apply more nodelinting rules (#3324)
* ✏️ Alphabetize lint rules

* 🔥 Remove duplicates

*  Update `lintfix` script

* 👕 Apply `node-param-operation-without-no-data-expression` (#3329)

* 👕 Apply `node-param-operation-without-no-data-expression`

* 👕 Add exceptions

* 👕 Apply `node-param-description-weak` (#3328)

Co-authored-by: Iván Ovejero <ivov.src@gmail.com>

* 👕 Apply `node-param-option-value-duplicate` (#3331)

* 👕 Apply `node-param-description-miscased-json` (#3337)

* 👕 Apply `node-param-display-name-excess-inner-whitespace` (#3335)

Co-authored-by: Iván Ovejero <ivov.src@gmail.com>

* 👕 Apply `node-param-type-options-missing-from-limit` (#3336)

* Rule workig as intended

* ✏️ Uncomment rules

Co-authored-by: Iván Ovejero <ivov.src@gmail.com>

* 👕 Apply `node-param-option-name-duplicate` (#3338)

Co-authored-by: Iván Ovejero <ivov.src@gmail.com>

* 👕 Apply `node-param-description-wrong-for-simplify` (#3334)

*  fix

*  exceptions

*  changed rule ignoring from file to line

* 👕 Apply `node-param-resource-without-no-data-expression` (#3339)

* 👕 Apply `node-param-display-name-untrimmed` (#3341)

* 👕 Apply `node-param-display-name-miscased-id` (#3340)

Co-authored-by: Iván Ovejero <ivov.src@gmail.com>

* 👕 Apply `node-param-resource-with-plural-option` (#3342)

* 👕 Apply `node-param-description-wrong-for-upsert` (#3333)

*  fix

*  replaced record with contact in description

*  fix

Co-authored-by: Iván Ovejero <ivov.src@gmail.com>

* 👕 Apply `node-param-option-description-identical-to-name` (#3343)

* 👕 Apply `node-param-option-name-containing-star` (#3347)

* 👕 Apply `node-param-display-name-wrong-for-update-fields` (#3348)

* 👕 Apply `node-param-option-name-wrong-for-get-all` (#3345)

*  fix

*  exceptions

* 👕 Apply node-param-display-name-wrong-for-simplify (#3344)

* Rule working as intended

* Uncomented other rules

* 👕 Undo and add exceptions

Co-authored-by: Iván Ovejero <ivov.src@gmail.com>

*  Alphabetize lint rules

*  Restore `lintfix` script

Co-authored-by: Michael Kret <88898367+michael-radency@users.noreply.github.com>
Co-authored-by: agobrech <45268029+agobrech@users.noreply.github.com>
2022-05-20 23:47:24 +02:00

842 lines
15 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';
export const customerOperations: INodeProperties[] = [
{
displayName: 'Operation',
name: 'operation',
type: 'options',
noDataExpression: true,
displayOptions: {
show: {
resource: [
'customer',
],
},
},
options: [
{
name: 'Create',
value: 'create',
description: 'Create a new customer',
},
{
name: 'Get',
value: 'get',
description: 'Get a customer',
},
{
name: 'Get All',
value: 'getAll',
description: 'Get all customers',
},
{
name: 'Properties',
value: 'properties',
description: 'Get customer property definitions',
},
{
name: 'Update',
value: 'update',
description: 'Update a customer',
},
],
default: 'create',
},
];
export const customerFields: INodeProperties[] = [
/* -------------------------------------------------------------------------- */
/* customer:create */
/* -------------------------------------------------------------------------- */
{
displayName: 'Resolve Data',
name: 'resolveData',
type: 'boolean',
default: true,
displayOptions: {
show: {
operation: [
'create',
],
resource: [
'customer',
],
},
},
description: 'By default the response only contain the ID to resource. If this option gets activated, it will resolve the data automatically.',
},
{
displayName: 'Additional Fields',
name: 'additionalFields',
type: 'collection',
placeholder: 'Add Field',
default: {},
displayOptions: {
show: {
operation: [
'create',
],
resource: [
'customer',
],
},
},
options: [
{
displayName: 'Age',
name: 'age',
type: 'number',
typeOptions: {
minValue: 1,
},
default: 1,
description: 'Customers age',
},
{
displayName: 'First Name',
name: 'firstName',
type: 'string',
default: '',
description: 'First name of the customer. When defined it must be between 1 and 40 characters.',
},
{
displayName: 'Gender',
name: 'gender',
type: 'options',
options: [
{
name: 'Female',
value: 'female',
},
{
name: 'Male',
value: 'male',
},
{
name: 'Unknown',
value: 'unknown',
},
],
default: '',
description: 'Gender of this customer',
},
{
displayName: 'Job Title',
name: 'jobTitle',
type: 'string',
default: '',
description: 'Job title. Max length 60 characters.',
},
{
displayName: 'Last Name',
name: 'lastName',
type: 'string',
default: '',
description: 'Last name of the customer',
},
{
displayName: 'Location',
name: 'location',
type: 'string',
default: '',
description: 'Location of the customer',
},
{
displayName: 'Notes',
name: 'background',
type: 'string',
typeOptions: {
alwaysOpenEditWindow: true,
},
default: '',
},
{
displayName: 'Organization',
name: 'organization',
type: 'string',
default: '',
},
{
displayName: 'Photo Url',
name: 'photoUrl',
type: 'string',
default: '',
description: 'URL of the customers photo',
},
],
},
{
displayName: 'Address',
name: 'addressUi',
placeholder: 'Add Address',
type: 'fixedCollection',
displayOptions: {
show: {
operation: [
'create',
],
resource: [
'customer',
],
},
},
default: {},
options: [
{
displayName: 'Address',
name: 'addressValue',
values: [
{
displayName: 'Line 1',
name: 'line1',
type: 'string',
default: '',
description: 'line1',
},
{
displayName: 'Line 2',
name: 'line2',
type: 'string',
default: '',
description: 'line2',
},
{
displayName: 'City',
name: 'city',
type: 'string',
default: '',
},
{
displayName: 'State',
name: 'state',
type: 'string',
default: '',
},
{
displayName: 'Country',
name: 'country',
type: 'options',
typeOptions: {
loadOptionsMethod: 'getCountriesCodes',
},
default: '',
},
{
displayName: 'Postal Code',
name: 'postalCode',
type: 'string',
default: '',
},
],
},
],
},
{
displayName: 'Chat Handles',
name: 'chatsUi',
placeholder: 'Add Chat Handle',
type: 'fixedCollection',
typeOptions: {
multipleValues: true,
},
displayOptions: {
show: {
operation: [
'create',
],
resource: [
'customer',
],
},
},
default: {},
options: [
{
displayName: 'Chat Handle',
name: 'chatsValues',
values: [
{
displayName: 'Type',
name: 'type',
type: 'options',
options: [
{
name: 'AIM',
value: 'aim',
},
{
name: 'Google Talk',
value: 'gtalk',
},
{
name: 'ICQ',
value: 'icq',
},
{
name: 'MSN',
value: 'msn',
},
{
name: 'Other',
value: 'other',
},
{
name: 'QQ',
value: 'qq',
},
{
name: 'Skype',
value: 'skype',
},
{
name: 'XMPP',
value: 'xmpp',
},
{
name: 'Yahoo',
value: 'yahoo',
},
],
description: 'Chat type',
default: '',
},
{
displayName: 'Value',
name: 'value',
type: 'string',
default: '',
description: 'Chat handle',
},
],
},
],
},
{
displayName: 'Emails',
name: 'emailsUi',
placeholder: 'Add Email',
type: 'fixedCollection',
typeOptions: {
multipleValues: true,
},
displayOptions: {
show: {
operation: [
'create',
],
resource: [
'customer',
],
},
},
default: {},
options: [
{
displayName: 'Email',
name: 'emailsValues',
values: [
{
displayName: 'Type',
name: 'type',
type: 'options',
options: [
{
name: 'Home',
value: 'home',
},
{
name: 'Other',
value: 'other',
},
{
name: 'Work',
value: 'work',
},
],
description: 'Location for this email address',
default: '',
},
{
displayName: 'Value',
name: 'value',
type: 'string',
default: '',
description: 'Email',
},
],
},
],
},
{
displayName: 'Phones',
name: 'phonesUi',
placeholder: 'Add Phone',
type: 'fixedCollection',
typeOptions: {
multipleValues: true,
},
displayOptions: {
show: {
operation: [
'create',
],
resource: [
'customer',
],
},
},
default: {},
options: [
{
displayName: 'Email',
name: 'phonesValues',
values: [
{
displayName: 'Type',
name: 'type',
type: 'options',
options: [
{
name: 'Fax',
value: 'fax',
},
{
name: 'Home',
value: 'home',
},
{
name: 'Other',
value: 'other',
},
{
name: 'Pager',
value: 'pager',
},
{
name: 'Work',
value: 'work',
},
],
description: 'Location for this phone',
default: '',
},
{
displayName: 'Value',
name: 'value',
type: 'string',
default: '',
description: 'Phone',
},
],
},
],
},
{
displayName: 'Social Profiles',
name: 'socialProfilesUi',
placeholder: 'Add Social Profile',
type: 'fixedCollection',
typeOptions: {
multipleValues: true,
},
displayOptions: {
show: {
operation: [
'create',
],
resource: [
'customer',
],
},
},
default: {},
options: [
{
displayName: 'Social Profile',
name: 'socialProfilesValues',
values: [
{
displayName: 'Type',
name: 'type',
type: 'options',
options: [
{
name: 'About Me',
value: 'aboutMe',
},
{
name: 'Facebook',
value: 'facebook',
},
{
name: 'Flickr',
value: 'flickr',
},
{
name: 'Forsquare',
value: 'forsquare',
},
{
name: 'Google',
value: 'google',
},
{
name: 'Google Plus',
value: 'googleplus',
},
{
name: 'Linkedin',
value: 'linkedin',
},
{
name: 'Other',
value: 'other',
},
{
name: 'Quora',
value: 'quora',
},
{
name: 'Tungleme',
value: 'tungleme',
},
{
name: 'Twitter',
value: 'twitter',
},
{
name: 'Youtube',
value: 'youtube',
},
],
description: 'Type of social profile',
default: '',
},
{
displayName: 'Value',
name: 'value',
type: 'string',
default: '',
description: 'Social Profile handle (url for example)',
},
],
},
],
},
{
displayName: 'Websites',
name: 'websitesUi',
placeholder: 'Add Website',
type: 'fixedCollection',
typeOptions: {
multipleValues: true,
},
displayOptions: {
show: {
operation: [
'create',
],
resource: [
'customer',
],
},
},
default: {},
options: [
{
displayName: 'Website',
name: 'websitesValues',
values: [
{
displayName: 'Value',
name: 'value',
type: 'string',
default: '',
description: 'Website URL',
},
],
},
],
},
/* -------------------------------------------------------------------------- */
/* customer:getAll */
/* -------------------------------------------------------------------------- */
{
displayName: 'Return All',
name: 'returnAll',
type: 'boolean',
displayOptions: {
show: {
operation: [
'getAll',
],
resource: [
'customer',
],
},
},
default: false,
description: 'Whether to return all results or only up to a given limit',
},
{
displayName: 'Limit',
name: 'limit',
type: 'number',
displayOptions: {
show: {
operation: [
'getAll',
],
resource: [
'customer',
],
returnAll: [
false,
],
},
},
typeOptions: {
minValue: 1,
},
default: 50,
description: 'Max number of results to return',
},
{
displayName: 'Options',
name: 'options',
type: 'collection',
placeholder: 'Add Option',
default: {},
displayOptions: {
show: {
resource: [
'customer',
],
operation: [
'getAll',
],
},
},
options: [
{
displayName: 'First Name',
name: 'firstName',
type: 'string',
default: '',
description: 'Filters customers by first name',
},
{
displayName: 'Last Name',
name: 'lastName',
type: 'string',
default: '',
description: 'Filters customers by last name',
},
{
displayName: 'Mailbox ID',
name: 'mailbox',
type: 'string',
default: '',
description: 'Filters customers from a specific mailbox',
},
{
displayName: 'Modified Since',
name: 'modifiedSince',
type: 'dateTime',
default: '',
description: 'Returns only customers that were modified after this date',
},
{
displayName: 'Sort Field',
name: 'sortField',
type: 'options',
options: [
{
name: 'Score',
value: 'score',
},
{
name: 'First Name',
value: 'firstName',
},
{
name: 'Last Name',
value: 'lastName',
},
{
name: 'Modified At',
value: 'modifiedAt',
},
],
default: 'score',
description: 'Sorts the result by specified field',
},
{
displayName: 'Sort Order',
name: 'sortOrder',
type: 'options',
options: [
{
name: 'ASC',
value: 'asc',
},
{
name: 'DESC',
value: 'desc',
},
],
default: 'desc',
},
{
displayName: 'Query',
name: 'query',
type: 'string',
typeOptions: {
alwaysOpenEditWindow: true,
},
default: '',
description: 'Advanced search <a href="https://developer.helpscout.com/mailbox-api/endpoints/customers/list/#query">Examples</a>',
},
],
},
/* -------------------------------------------------------------------------- */
/* customer:get */
/* -------------------------------------------------------------------------- */
{
displayName: 'Customer ID',
name: 'customerId',
type: 'string',
default: '',
required: true,
displayOptions: {
show: {
resource: [
'customer',
],
operation: [
'get',
],
},
},
},
/* -------------------------------------------------------------------------- */
/* customer:update */
/* -------------------------------------------------------------------------- */
{
displayName: 'Customer ID',
name: 'customerId',
type: 'string',
default: '',
displayOptions: {
show: {
operation: [
'update',
],
resource: [
'customer',
],
},
},
},
{
displayName: 'Update Fields',
name: 'updateFields',
type: 'collection',
placeholder: 'Add Field',
default: {},
displayOptions: {
show: {
operation: [
'update',
],
resource: [
'customer',
],
},
},
options: [
{
displayName: 'Age',
name: 'age',
type: 'number',
typeOptions: {
minValue: 1,
},
default: 1,
description: 'Customers age',
},
{
displayName: 'First Name',
name: 'firstName',
type: 'string',
default: '',
description: 'First name of the customer. When defined it must be between 1 and 40 characters.',
},
{
displayName: 'Gender',
name: 'gender',
type: 'options',
options: [
{
name: 'Female',
value: 'female',
},
{
name: 'Male',
value: 'male',
},
{
name: 'Unknown',
value: 'unknown',
},
],
default: '',
description: 'Gender of this customer',
},
{
displayName: 'Job Title',
name: 'jobTitle',
type: 'string',
default: '',
description: 'Job title. Max length 60 characters.',
},
{
displayName: 'Last Name',
name: 'lastName',
type: 'string',
default: '',
description: 'Last name of the customer',
},
{
displayName: 'Location',
name: 'location',
type: 'string',
default: '',
description: 'Location of the customer',
},
{
displayName: 'Notes',
name: 'background',
type: 'string',
typeOptions: {
alwaysOpenEditWindow: true,
},
default: '',
},
{
displayName: 'Organization',
name: 'organization',
type: 'string',
default: '',
},
{
displayName: 'Photo Url',
name: 'photoUrl',
type: 'string',
default: '',
description: 'URL of the customers photo',
},
],
},
];