n8n/packages/nodes-base/nodes/ActionNetwork/descriptions/PersonDescription.ts
Iván Ovejero 224a26c922
Add Action Network node (#1897)
*  Create Action Network node

* 🔥 Remove comments

* 🔥 Remove status in attendance

* 🔥 Remove loaders per feedback

Loaders removed for person, event, signature and petition

* 🚚 Rename tagging to person tag

* 🔨 Convert address_lines param to string

*  Simplify responses for person resource

*  Add simplify to all operations

* ✏️ Add documentation links

*  Improvements

* ✏️ Fix positioning of doc links

* 🔨 Refactor updateFields in signature:update

*  Address minor comments

*  Improvements

*  Add continue on fail

*  Minor improvements

Co-authored-by: ricardo <ricardoespinoza105@gmail.com>
Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>
2021-06-27 13:07:25 +02:00

251 lines
4.5 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 {
makeSimpleField,
personAdditionalFieldsOptions,
} from './SharedFields';
export const personOperations = [
{
displayName: 'Operation',
name: 'operation',
type: 'options',
displayOptions: {
show: {
resource: [
'person',
],
},
},
options: [
{
name: 'Create',
value: 'create',
},
{
name: 'Get',
value: 'get',
},
{
name: 'Get All',
value: 'getAll',
},
{
name: 'Update',
value: 'update',
},
],
default: 'create',
description: 'Operation to perform',
},
] as INodeProperties[];
export const personFields = [
// ----------------------------------------
// person: create
// ----------------------------------------
makeSimpleField('person', 'create'),
{
displayName: 'Email Address', // on create, only _one_ must be passed in
name: 'email_addresses',
type: 'fixedCollection',
default: {},
placeholder: 'Add Email Address Field',
description: 'Persons email addresses.',
displayOptions: {
show: {
resource: [
'person',
],
operation: [
'create',
],
},
},
options: [
{
displayName: 'Email Addresses Fields',
name: 'email_addresses_fields',
values: [
{
displayName: 'Address',
name: 'address',
type: 'string',
default: '',
description: 'Person\'s email address.',
},
{
displayName: 'Primary',
name: 'primary',
type: 'hidden',
default: true,
description: 'Whether this is the person\'s primary email address.',
},
{
displayName: 'Status',
name: 'status',
type: 'options',
default: 'subscribed',
description: 'Subscription status of this email address.',
options: [
{
name: 'Bouncing',
value: 'bouncing',
},
{
name: 'Previous Bounce',
value: 'previous bounce',
},
{
name: 'Previous Spam Complaint',
value: 'previous spam complaint',
},
{
name: 'Spam Complaint',
value: 'spam complaint',
},
{
name: 'Subscribed',
value: 'subscribed',
},
{
name: 'Unsubscribed',
value: 'unsubscribed',
},
],
},
],
},
],
},
{
displayName: 'Additional Fields',
name: 'additionalFields',
type: 'collection',
placeholder: 'Add Field',
default: {},
displayOptions: {
show: {
resource: [
'person',
],
operation: [
'create',
],
},
},
options: personAdditionalFieldsOptions,
},
// ----------------------------------------
// person: get
// ----------------------------------------
{
displayName: 'Person ID',
name: 'personId',
description: 'ID of the person to retrieve.',
type: 'string',
required: true,
default: '',
displayOptions: {
show: {
resource: [
'person',
],
operation: [
'get',
],
},
},
},
makeSimpleField('person', 'get'),
// ----------------------------------------
// person: getAll
// ----------------------------------------
{
displayName: 'Return All',
name: 'returnAll',
type: 'boolean',
default: false,
description: 'Return all results.',
displayOptions: {
show: {
resource: [
'person',
],
operation: [
'getAll',
],
},
},
},
{
displayName: 'Limit',
name: 'limit',
type: 'number',
default: 50,
description: 'The number of results to return.',
typeOptions: {
minValue: 1,
},
displayOptions: {
show: {
resource: [
'person',
],
operation: [
'getAll',
],
returnAll: [
false,
],
},
},
},
makeSimpleField('person', 'getAll'),
// ----------------------------------------
// person: update
// ----------------------------------------
{
displayName: 'Person ID',
name: 'personId',
description: 'ID of the person to update.',
type: 'string',
required: true,
default: '',
displayOptions: {
show: {
resource: [
'person',
],
operation: [
'update',
],
},
},
},
makeSimpleField('person', 'update'),
{
displayName: 'Update Fields',
name: 'updateFields',
type: 'collection',
placeholder: 'Add Field',
default: {},
displayOptions: {
show: {
resource: [
'person',
],
operation: [
'update',
],
},
},
options: personAdditionalFieldsOptions,
},
] as INodeProperties[];