n8n/packages/nodes-base/nodes/QuickBase/RecordDescription.ts
Iván Ovejero 70ae90fa3c
refactor: Apply more eslint-plugin-n8n-nodes-base autofixable rules (#3432)
*  Update `lintfix` script

* 👕 Remove unneeded lint exceptions

* 👕 Run baseline `lintfix`

* 👕 Apply `node-param-description-miscased-url` (#3441)

* 👕 Apply `rule node-param-placeholder-miscased-id` (#3443)

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

* 👕 Apply `node-param-option-name-wrong-for-upsert` (#3446)

* 👕 Apply `node-param-min-value-wrong-for-limit` (#3442)

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

* Apply `node-param-display-name-wrong-for-dynamic-options` (#3454)

* 🔨 fix

*  Fix `Assigned To` fields

Co-authored-by: Michael Kret <michael.k@radency.com>

* 👕 Apply `rule node-param-default-wrong-for-number` (#3453)

* 👕 Apply `node-param-default-wrong-for-string` (#3452)

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

* Apply `node-param-display-name-miscased` (#3449)

* 🔨 fix

* 🔨 exceptions

*  review fixes

* 👕 Apply `node-param-description-lowercase-first-char` (#3451)

*  fix

*  review fixes

*  fix

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

* 👕 Apply `node-param-description-wrong-for-dynamic-options` (#3456)

* Rule working as intended

* Add rule

* 🔥 Remove repetitions

* 👕 Add exceptions

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

* 👕 Small fix for `node-param-description-wrong-for-dynamic-options`

* 👕 Apply `node-param-default-wrong-for-fixed-collection` (#3460)

* 👕 Apply `node-param-description-line-break-html-tag` (#3462)

* 👕 Run baseline `lintfix`

* 👕 Apply `node-param-options-type-unsorted-items` (#3459)

*  fix

* 🔨 exceptions

* Add exception for Salesmate and Zoom

Co-authored-by: Michael Kret <michael.k@radency.com>
Co-authored-by: Iván Ovejero <ivov.src@gmail.com>

*  Restore `lintfix` command

Co-authored-by: Omar Ajoue <krynble@gmail.com>
Co-authored-by: Michael Kret <88898367+michael-radency@users.noreply.github.com>
Co-authored-by: agobrech <45268029+agobrech@users.noreply.github.com>
Co-authored-by: Michael Kret <michael.k@radency.com>
Co-authored-by: brianinoa <54530642+brianinoa@users.noreply.github.com>
2022-06-03 19:23:49 +02:00

589 lines
13 KiB
TypeScript

import {
INodeProperties,
} from 'n8n-workflow';
export const recordOperations: INodeProperties[] = [
{
displayName: 'Operation',
name: 'operation',
type: 'options',
noDataExpression: true,
displayOptions: {
show: {
resource: [
'record',
],
},
},
options: [
{
name: 'Create',
value: 'create',
description: 'Create a record',
},
{
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 record',
},
{
name: 'Get All',
value: 'getAll',
description: 'Get all records',
},
{
name: 'Update',
value: 'update',
description: 'Update a record',
},
],
default: 'create',
},
];
export const recordFields: INodeProperties[] = [
/* -------------------------------------------------------------------------- */
/* record:create */
/* -------------------------------------------------------------------------- */
{
displayName: 'Table ID',
name: 'tableId',
type: 'string',
default: '',
required: true,
displayOptions: {
show: {
resource: [
'record',
],
operation: [
'create',
],
},
},
description: 'The table identifier',
},
{
displayName: 'Columns',
name: 'columns',
type: 'string',
displayOptions: {
show: {
resource: [
'record',
],
operation: [
'create',
],
},
},
default: '',
required: true,
placeholder: 'Select Fields...',
description: 'Comma-separated list of the properties which should used as columns for the new rows',
},
{
displayName: 'Simplify',
name: 'simple',
type: 'boolean',
displayOptions: {
show: {
resource: [
'record',
],
operation: [
'create',
],
},
},
default: true,
description: 'Whether to return a simplified version of the response instead of the raw data',
},
{
displayName: 'Options',
name: 'options',
type: 'collection',
placeholder: 'Add Option',
default: {},
displayOptions: {
show: {
resource: [
'record',
],
operation: [
'create',
],
},
},
options: [
{
displayName: 'Return Fields',
name: 'fields',
type: 'multiOptions',
typeOptions: {
loadOptionsMethod: 'getTableFields',
loadOptionsDependsOn: [
'tableId',
],
},
default: [],
description: 'Specify an array of field IDs that will return data for any updates or added record. Record ID (FID 3) is always returned if any field ID is requested.',
},
{
displayName: 'Use Field IDs',
name: 'useFieldIDs',
type: 'boolean',
default: false,
description: 'Use Field IDs instead of Field Names in Columns',
},
],
},
/* -------------------------------------------------------------------------- */
/* record:delete */
/* -------------------------------------------------------------------------- */
{
displayName: 'Table ID',
name: 'tableId',
type: 'string',
default: '',
required: true,
displayOptions: {
show: {
resource: [
'record',
],
operation: [
'delete',
],
},
},
description: 'The table identifier',
},
{
displayName: 'Where',
name: 'where',
type: 'string',
default: '',
required: true,
displayOptions: {
show: {
resource: [
'record',
],
operation: [
'delete',
],
},
},
description: 'The filter to delete records. To delete all records specify a filter that will include all records, for example {3.GT.0} where 3 is the ID of the Record ID field.',
},
/* -------------------------------------------------------------------------- */
/* record:getAll */
/* -------------------------------------------------------------------------- */
{
displayName: 'Table ID',
name: 'tableId',
type: 'string',
default: '',
required: true,
displayOptions: {
show: {
resource: [
'record',
],
operation: [
'getAll',
],
},
},
description: 'The table identifier',
},
{
displayName: 'Return All',
name: 'returnAll',
type: 'boolean',
displayOptions: {
show: {
resource: [
'record',
],
operation: [
'getAll',
],
},
},
default: false,
description: 'Whether to return all results or only up to a given limit',
},
{
displayName: 'Limit',
name: 'limit',
type: 'number',
displayOptions: {
show: {
resource: [
'record',
],
operation: [
'getAll',
],
returnAll: [
false,
],
},
},
typeOptions: {
minValue: 1,
maxValue: 100,
},
default: 50,
description: 'Max number of results to return',
},
{
displayName: 'Options',
name: 'options',
type: 'collection',
placeholder: 'Add Field',
default: {},
displayOptions: {
show: {
resource: [
'record',
],
operation: [
'getAll',
],
},
},
options: [
{
displayName: 'Select',
name: 'select',
type: 'multiOptions',
typeOptions: {
loadOptionsMethod: 'getTableFields',
},
default: [],
description: 'An array of field IDs for the fields that should be returned in the response. If empty, the default columns on the table will be returned.',
},
{
displayName: 'Sort By',
name: 'sortByUi',
placeholder: 'Add Sort By',
type: 'fixedCollection',
typeOptions: {
multipleValues: true,
},
default: {},
options: [
{
name: 'sortByValues',
displayName: 'Sort By',
values: [
{
displayName: 'Field Name or ID',
name: 'fieldId',
type: 'options',
typeOptions: {
loadOptionsMethod: 'getTableFields',
},
default: '',
description: 'The unique identifier of a field in a table. Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/nodes/expressions.html#expressions">expression</a>.',
},
{
displayName: 'Order',
name: 'order',
type: 'options',
options: [
{
name: 'ASC',
value: 'ASC',
},
{
name: 'DESC',
value: 'DESC',
},
],
default: 'ASC',
},
],
},
],
description: 'By default, queries will be sorted by the given sort fields or the default sort if the query does not provide any. Set to false to avoid sorting when the order of the data returned is not important. Returning data without sorting can improve performance.',
},
{
displayName: 'Where',
name: 'where',
type: 'string',
default: '',
description: 'The filter, using the <a href="https://help.quickbase.com/api-guide/componentsquery.html">Quick Base query language</a>, which determines the records to return',
},
],
},
/* -------------------------------------------------------------------------- */
/* record:update */
/* -------------------------------------------------------------------------- */
{
displayName: 'Table ID',
name: 'tableId',
type: 'string',
default: '',
required: true,
displayOptions: {
show: {
resource: [
'record',
],
operation: [
'update',
],
},
},
description: 'The table identifier',
},
{
displayName: 'Columns',
name: 'columns',
type: 'string',
displayOptions: {
show: {
resource: [
'record',
],
operation: [
'update',
],
},
},
default: '',
required: true,
// eslint-disable-next-line n8n-nodes-base/node-param-placeholder-miscased-id
placeholder: 'id,name,description',
description: 'Comma-separated list of the properties which should used as columns for the new rows',
},
{
displayName: 'Update Key',
name: 'updateKey',
type: 'string',
displayOptions: {
show: {
resource: [
'record',
],
operation: [
'update',
],
},
},
default: '',
description: 'Update can use the key field on the table, or any other supported unique field',
},
{
displayName: 'Simplify',
name: 'simple',
type: 'boolean',
displayOptions: {
show: {
resource: [
'record',
],
operation: [
'update',
],
},
},
default: true,
description: 'Whether to return a simplified version of the response instead of the raw data',
},
{
displayName: 'Options',
name: 'options',
type: 'collection',
placeholder: 'Add Option',
default: {},
displayOptions: {
show: {
resource: [
'record',
],
operation: [
'update',
],
},
},
options: [
{
displayName: 'Fields',
name: 'fields',
type: 'multiOptions',
typeOptions: {
loadOptionsMethod: 'getTableFields',
loadOptionsDependsOn: [
'tableId',
],
},
default: [],
description: 'Specify an array of field IDs that will return data for any updates or added record. Record ID (FID 3) is always returned if any field ID is requested.',
},
{
displayName: 'Use Field IDs',
name: 'useFieldIDs',
type: 'boolean',
default: false,
description: 'Use Field IDs instead of Field Names in Columns',
},
// {
// displayName: 'Merge Field ID',
// name: 'mergeFieldId',
// type: 'options',
// typeOptions: {
// loadOptionsMethod: 'getUniqueTableFields',
// },
// default: '',
// description: `You're updating records in a Quick Base table with data from an external file. In order for a merge like this to work,
// Quick Base needs a way to match records in the source data with corresponding records in the destination table. You make this possible by
// choosing the field in the app table that holds unique matching values. This is called a merge field.`,
// },
],
},
/* -------------------------------------------------------------------------- */
/* record:upsert */
/* -------------------------------------------------------------------------- */
{
displayName: 'Table ID',
name: 'tableId',
type: 'string',
default: '',
required: true,
displayOptions: {
show: {
resource: [
'record',
],
operation: [
'upsert',
],
},
},
description: 'The table identifier',
},
{
displayName: 'Columns',
name: 'columns',
type: 'string',
displayOptions: {
show: {
resource: [
'record',
],
operation: [
'upsert',
],
},
},
default: '',
required: true,
// eslint-disable-next-line n8n-nodes-base/node-param-placeholder-miscased-id
placeholder: 'id,name,description',
description: 'Comma-separated list of the properties which should used as columns for the new rows',
},
{
displayName: 'Update Key',
name: 'updateKey',
type: 'string',
displayOptions: {
show: {
resource: [
'record',
],
operation: [
'upsert',
],
},
},
default: '',
description: 'Update can use the key field on the table, or any other supported unique field',
},
{
displayName: 'Merge Field Name or ID',
name: 'mergeFieldId',
type: 'options',
typeOptions: {
loadOptionsMethod: 'getUniqueTableFields',
},
displayOptions: {
show: {
resource: [
'record',
],
operation: [
'upsert',
],
},
},
default: '',
description: '<p>You\'re updating records in a Quick Base table with data from an external file. In order for a merge like this to work, Quick Base needs a way to match records in the source data with corresponding records in the destination table.</p><p>You make this possible by choosing the field in the app table that holds unique matching values. This is called a merge field.</p>. Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/nodes/expressions.html#expressions">expression</a>.',
},
{
displayName: 'Simplify',
name: 'simple',
type: 'boolean',
displayOptions: {
show: {
resource: [
'record',
],
operation: [
'upsert',
],
},
},
default: true,
description: 'Whether to return a simplified version of the response instead of the raw data',
},
{
displayName: 'Options',
name: 'options',
type: 'collection',
placeholder: 'Add Option',
default: {},
displayOptions: {
show: {
resource: [
'record',
],
operation: [
'upsert',
],
},
},
options: [
{
displayName: 'Fields',
name: 'fields',
type: 'multiOptions',
typeOptions: {
loadOptionsMethod: 'getTableFields',
loadOptionsDependsOn: [
'tableId',
],
},
default: [],
description: 'Specify an array of field IDs that will return data for any updates or added record. Record ID (FID 3) is always returned if any field ID is requested.',
},
{
displayName: 'Use Field IDs',
name: 'useFieldIDs',
type: 'boolean',
default: false,
description: 'Use Field IDs instead of Field Names in Columns',
},
],
},
];