2020-12-02 23:05:54 -08:00
import {
INodeProperties ,
2020-12-22 23:19:10 -08:00
} from 'n8n-workflow' ;
2020-12-02 23:05:54 -08:00
2021-12-03 00:44:16 -08:00
export const userOperations : INodeProperties [ ] = [
2020-12-02 23:05:54 -08:00
{
displayName : 'Operation' ,
name : 'operation' ,
type : 'options' ,
2022-05-20 14:47:24 -07:00
noDataExpression : true ,
2020-12-02 23:05:54 -08:00
displayOptions : {
show : {
resource : [
'user' ,
] ,
} ,
} ,
options : [
{
2022-06-03 10:23:49 -07:00
name : 'Create or Update' ,
2020-12-02 23:05:54 -08:00
value : 'upsert' ,
2022-05-20 14:47:24 -07:00
description : 'Create a new user, or update the current one if it already exists (upsert)' ,
2020-12-02 23:05:54 -08:00
} ,
{
name : 'Delete' ,
value : 'delete' ,
description : 'Delete a user' ,
} ,
{
name : 'Get' ,
value : 'get' ,
description : 'Get a user' ,
} ,
] ,
default : 'upsert' ,
} ,
2021-12-03 00:44:16 -08:00
] ;
2020-12-02 23:05:54 -08:00
2021-12-03 00:44:16 -08:00
export const userFields : INodeProperties [ ] = [
2020-12-02 23:05:54 -08:00
2020-12-22 23:19:10 -08:00
/* -------------------------------------------------------------------------- */
/* user:upsert */
/* -------------------------------------------------------------------------- */
2020-12-02 23:05:54 -08:00
{
displayName : 'Identifier' ,
name : 'identifier' ,
type : 'options' ,
required : true ,
options : [
{
name : 'Email' ,
value : 'email' ,
} ,
{
name : 'User ID' ,
value : 'userId' ,
} ,
] ,
displayOptions : {
show : {
resource : [
'user' ,
] ,
operation : [
'upsert' ,
] ,
} ,
} ,
default : '' ,
description : 'Identifier to be used' ,
} ,
{
displayName : 'Value' ,
name : 'value' ,
type : 'string' ,
required : true ,
displayOptions : {
show : {
resource : [
'user' ,
] ,
operation : [
'upsert' ,
] ,
} ,
} ,
default : '' ,
} ,
{
displayName : ` Create If Doesn't exist ` ,
name : 'preferUserId' ,
type : 'boolean' ,
required : true ,
displayOptions : {
show : {
resource : [
'user' ,
] ,
operation : [
'upsert' ,
] ,
identifier : [
'userId' ,
] ,
} ,
} ,
default : true ,
2022-06-20 07:54:01 -07:00
description : 'Whether to create a new user if the idetifier does not exist' ,
2020-12-02 23:05:54 -08:00
} ,
{
displayName : 'Additional Fields' ,
name : 'additionalFields' ,
type : 'collection' ,
placeholder : 'Add Field' ,
default : { } ,
displayOptions : {
show : {
resource : [
'user' ,
] ,
operation : [
'upsert' ,
] ,
} ,
} ,
options : [
{
displayName : 'Data Fields' ,
name : 'dataFieldsUi' ,
type : 'fixedCollection' ,
2022-04-22 09:29:51 -07:00
default : { } ,
2020-12-02 23:05:54 -08:00
placeholder : 'Add Data Field' ,
typeOptions : {
multipleValues : true ,
} ,
options : [
{
name : 'dataFieldValues' ,
displayName : 'Data Field' ,
values : [
{
displayName : 'Key' ,
name : 'key' ,
type : 'string' ,
default : '' ,
2022-05-06 14:01:25 -07:00
description : 'The end user specified key of the user defined data' ,
2020-12-02 23:05:54 -08:00
} ,
{
displayName : 'Value' ,
name : 'value' ,
type : 'string' ,
default : '' ,
2022-05-06 14:01:25 -07:00
description : 'The end user specified value of the user defined data' ,
2020-12-02 23:05:54 -08:00
} ,
] ,
} ,
] ,
} ,
{
displayName : 'Merge Nested Objects' ,
name : 'mergeNestedObjects' ,
type : 'boolean' ,
default : false ,
2022-06-20 07:54:01 -07:00
description : 'Whether to merge top level objects instead of overwriting (default: false), e.g. if user profile has data: {mySettings:{mobile:true}} and change contact field has data: {mySettings:{email:true}}, the resulting profile: {mySettings:{mobile:true,email:true}}' ,
2020-12-02 23:05:54 -08:00
} ,
] ,
} ,
2020-12-22 23:19:10 -08:00
/* -------------------------------------------------------------------------- */
/* user:delete */
/* -------------------------------------------------------------------------- */
2020-12-02 23:05:54 -08:00
{
displayName : 'By' ,
name : 'by' ,
type : 'options' ,
required : true ,
options : [
{
name : 'Email' ,
value : 'email' ,
} ,
{
name : 'User ID' ,
value : 'userId' ,
} ,
] ,
displayOptions : {
show : {
resource : [
'user' ,
] ,
operation : [
'delete' ,
] ,
} ,
} ,
default : 'email' ,
description : 'Identifier to be used' ,
} ,
{
displayName : 'User ID' ,
name : 'userId' ,
type : 'string' ,
required : true ,
displayOptions : {
show : {
resource : [
'user' ,
] ,
operation : [
'delete' ,
] ,
by : [
'userId' ,
] ,
} ,
} ,
default : '' ,
description : 'Unique identifier for a particular user' ,
} ,
{
displayName : 'Email' ,
name : 'email' ,
type : 'string' ,
2022-06-20 07:54:01 -07:00
placeholder : 'name@email.com' ,
2020-12-02 23:05:54 -08:00
required : true ,
displayOptions : {
show : {
resource : [
'user' ,
] ,
operation : [
'delete' ,
] ,
by : [
'email' ,
] ,
} ,
} ,
default : '' ,
description : 'Email for a particular user' ,
} ,
2020-12-22 23:19:10 -08:00
/* -------------------------------------------------------------------------- */
/* user:get */
/* -------------------------------------------------------------------------- */
2020-12-02 23:05:54 -08:00
{
displayName : 'By' ,
name : 'by' ,
type : 'options' ,
required : true ,
options : [
{
name : 'Email' ,
value : 'email' ,
} ,
{
name : 'User ID' ,
value : 'userId' ,
} ,
] ,
displayOptions : {
show : {
resource : [
'user' ,
] ,
operation : [
'get' ,
] ,
} ,
} ,
default : 'email' ,
description : 'Identifier to be used' ,
} ,
{
displayName : 'User ID' ,
name : 'userId' ,
type : 'string' ,
required : true ,
displayOptions : {
show : {
resource : [
'user' ,
] ,
operation : [
'get' ,
] ,
by : [
'userId' ,
] ,
} ,
} ,
default : '' ,
description : 'Unique identifier for a particular user' ,
} ,
{
displayName : 'Email' ,
name : 'email' ,
type : 'string' ,
2022-06-20 07:54:01 -07:00
placeholder : 'name@email.com' ,
2020-12-02 23:05:54 -08:00
required : true ,
displayOptions : {
show : {
resource : [
'user' ,
] ,
operation : [
'get' ,
] ,
by : [
'email' ,
] ,
} ,
} ,
default : '' ,
description : 'Email for a particular user' ,
} ,
2021-12-03 00:44:16 -08:00
] ;