2021-12-03 00:44:16 -08:00
import {
INodeProperties ,
} from 'n8n-workflow' ;
2021-06-27 04:07:25 -07:00
import {
Operation ,
Resource ,
} from '../types' ;
2021-12-03 00:44:16 -08:00
export const languageOptions : INodeProperties [ 'options' ] = [
2021-06-27 04:07:25 -07:00
{
name : 'Danish' ,
value : 'da' ,
} ,
{
name : 'Dutch' ,
value : 'nl' ,
} ,
{
name : 'English' ,
value : 'en' ,
} ,
{
name : 'Finnish' ,
value : 'fi' ,
} ,
{
name : 'French' ,
value : 'fr' ,
} ,
{
name : 'German' ,
value : 'de' ,
} ,
{
name : 'Hungarian' ,
value : 'hu' ,
} ,
{
name : 'Indonesian' ,
value : 'id' ,
} ,
{
name : 'Japanese' ,
value : 'ja' ,
} ,
{
name : 'Portuguese - Portugal' ,
value : 'pt' ,
} ,
{
name : 'Portuguese - Brazil' ,
value : 'br' ,
} ,
{
name : 'Rumanian' ,
value : 'ru' ,
} ,
{
name : 'Spanish' ,
value : 'es' ,
} ,
{
name : 'Swedish' ,
value : 'sv' ,
} ,
{
name : 'Turkish' ,
value : 'tr' ,
} ,
{
name : 'Welsh' ,
value : 'cy' ,
} ,
2021-12-03 00:44:16 -08:00
] ;
2021-06-27 04:07:25 -07:00
2021-12-03 00:44:16 -08:00
const postalAddressesFields : INodeProperties [ ] = [
2021-06-27 04:07:25 -07:00
{
displayName : 'Primary' ,
name : 'primary' ,
type : 'boolean' ,
default : false ,
description : 'Whether this is the person\'s primary address.' ,
} ,
{
displayName : 'Address Line' ,
name : 'address_lines' ,
type : 'string' , // The Action Network API expects a string array but ignores any string beyond the first, so this input field is simplified to string.
default : '' ,
description : 'Line for a person\'s address.' ,
} ,
{
displayName : 'Locality' ,
name : 'locality' ,
type : 'string' ,
default : '' ,
description : 'City or other local administrative area. If blank, this will be filled in based on Action Network\'s geocoding.' ,
} ,
{
displayName : 'Region' ,
name : 'region' ,
type : 'string' ,
default : '' ,
description : 'State or subdivision code per ISO 3166-2.' ,
} ,
{
displayName : 'Postal Code' ,
name : 'postal_code' ,
type : 'string' ,
default : '' ,
description : 'Region specific postal code, such as ZIP code.' ,
} ,
{
displayName : 'Country' ,
name : 'country' ,
type : 'string' ,
default : '' ,
description : 'Country code according to ISO 3166-1 Alpha-2. Defaults to US.' ,
} ,
{
displayName : 'Language' ,
name : 'language' ,
type : 'string' ,
default : '' ,
description : 'Language in which the address is recorded, per ISO 639.' ,
} ,
{
displayName : 'Location' ,
name : 'location' ,
type : 'fixedCollection' ,
default : '' ,
options : [
{
displayName : 'Location Fields' ,
name : 'location_fields' ,
values : [
{
displayName : 'Latitude' ,
name : 'latitude' ,
type : 'string' ,
default : '' ,
description : 'Latitude of the location of the address.' ,
} ,
{
displayName : 'Longitude' ,
name : 'longitude' ,
type : 'string' ,
default : '' ,
description : 'Longitude of the location of the address.' ,
} ,
] ,
} ,
] ,
} ,
] ;
2021-12-03 00:44:16 -08:00
export const eventAdditionalFieldsOptions : INodeProperties [ 'options' ] = [
2021-06-27 04:07:25 -07:00
{
displayName : 'Browser URL' ,
name : 'browser_url' ,
type : 'string' ,
default : '' ,
description : 'URL to this event’ s page on the Action Network or a third party.' ,
} ,
{
displayName : 'Description' ,
name : 'description' ,
type : 'string' ,
default : '' ,
description : 'Description of the event. HTML supported.' ,
} ,
{
displayName : 'End Date' ,
name : 'end_date' ,
type : 'dateTime' ,
default : '' ,
description : 'End date and time of the event.' ,
} ,
{
displayName : 'Featured Image URL' ,
name : 'featured_image_url' ,
type : 'string' ,
default : '' ,
description : 'URL to this event’ s featured image on the Action Network.' ,
} ,
{
displayName : 'Instructions' ,
name : 'instructions' ,
type : 'string' ,
default : '' ,
description : 'Event\'s instructions for activists, visible after they RSVP. HTML supported.' ,
} ,
{
displayName : 'Location' ,
name : 'location' ,
type : 'fixedCollection' ,
default : { } ,
placeholder : 'Add Location Field' ,
typeOptions : {
multipleValues : false ,
} ,
options : [
// different name, identical structure
{
displayName : 'Postal Addresses Fields' ,
name : 'postal_addresses_fields' ,
placeholder : 'Add Postal Address Field' ,
values : postalAddressesFields ,
} ,
] ,
} ,
{
displayName : 'Name' ,
name : 'name' ,
type : 'string' ,
default : '' ,
description : 'Internal (not public) title of the event.' ,
} ,
{
displayName : 'Start Date' ,
name : 'start_date' ,
type : 'dateTime' ,
default : '' ,
description : 'Start date and time of the event.' ,
} ,
] ;
2021-12-03 00:44:16 -08:00
export const personAdditionalFieldsOptions : INodeProperties [ 'options' ] = [
2021-06-27 04:07:25 -07:00
{
displayName : 'Family Name' ,
name : 'family_name' ,
type : 'string' ,
default : '' ,
description : 'Person’ s last name.' ,
} ,
{
displayName : 'Given Name' ,
name : 'given_name' ,
type : 'string' ,
default : '' ,
description : 'Person’ s first name.' ,
} ,
{
displayName : 'Language Spoken' ,
name : 'languages_spoken' ,
type : 'options' , // Action Network accepts a `string[]` of language codes, but supports only one language per person - sending an array of 2+ languages will result in the first valid language being set as the preferred language for the person. Therefore, the user may select only one option in the n8n UI.
default : [ ] ,
description : 'Language spoken by the person' ,
options : languageOptions ,
} ,
{
displayName : 'Phone Number' , // on create, only _one_ must be passed in
name : 'phone_numbers' ,
type : 'fixedCollection' ,
default : { } ,
placeholder : 'Add Phone Numbers Field' ,
options : [
{
displayName : 'Phone Numbers Fields' ,
name : 'phone_numbers_fields' ,
placeholder : 'Add Phone Number Field' ,
values : [
{
displayName : 'Number' ,
name : 'number' ,
type : 'string' ,
default : '' ,
description : 'Person\'s mobile number, in international format without the plus sign.' ,
} ,
{
displayName : 'Primary' ,
name : 'primary' ,
type : 'hidden' ,
default : true ,
description : 'Whether this is the person\'s primary phone number.' ,
} ,
{
displayName : 'Status' ,
name : 'status' ,
type : 'options' ,
default : 'subscribed' ,
description : 'Subscription status of this number.' ,
options : [
{
name : 'Bouncing' ,
value : 'bouncing' ,
} ,
{
name : 'Previous Bounce' ,
value : 'previous bounce' ,
} ,
{
name : 'Subscribed' ,
value : 'subscribed' ,
} ,
{
name : 'Unsubscribed' ,
value : 'unsubscribed' ,
} ,
] ,
} ,
] ,
} ,
] ,
} ,
{
displayName : 'Postal Addresses' ,
name : 'postal_addresses' ,
type : 'fixedCollection' ,
default : { } ,
placeholder : 'Add Postal Addresses Field' ,
typeOptions : {
multipleValues : true ,
} ,
options : [
{
displayName : 'Postal Addresses Fields' ,
name : 'postal_addresses_fields' ,
placeholder : 'Add Postal Address Field' ,
values : postalAddressesFields ,
} ,
] ,
} ,
] ;
2021-12-03 00:44:16 -08:00
export const petitionAdditionalFieldsOptions : INodeProperties [ ] = [
2021-06-27 04:07:25 -07:00
{
displayName : 'Browser URL' ,
name : 'browser_url' ,
type : 'string' ,
default : '' ,
description : 'URL to this petition’ s page on the Action Network or a third party.' ,
} ,
{
displayName : 'Featured Image URL' ,
name : 'featured_image_url' ,
type : 'string' ,
default : '' ,
description : 'URL to this action’ s featured image on the Action Network.' ,
} ,
{
displayName : 'Name' ,
name : 'name' ,
type : 'string' ,
default : '' ,
description : 'Internal (not public) title of the petition.' ,
} ,
{
displayName : 'Petition Text' ,
name : 'petition_text' ,
type : 'string' ,
default : '' ,
description : 'Text of the letter to the petition’ s target.' ,
} ,
{
displayName : 'Targets' ,
name : 'target' ,
type : 'string' ,
default : '' ,
description : 'Comma-separated names of targets for this petition.' ,
} ,
] ;
2021-12-03 00:44:16 -08:00
export const makeSimpleField = ( resource : Resource , operation : Operation ) : INodeProperties = > ( {
2021-06-27 04:07:25 -07:00
displayName : 'Simple' ,
name : 'simple' ,
type : 'boolean' ,
displayOptions : {
show : {
resource : [
resource ,
] ,
operation : [
operation ,
] ,
} ,
} ,
default : true ,
description : 'Return a simplified version of the response instead of the raw data.' ,
} ) ;