2021-04-02 09:10:22 -07:00
import {
2021-04-02 08:56:45 -07:00
INodeProperties ,
} from 'n8n-workflow' ;
2020-01-28 07:50:15 -08:00
2021-04-02 08:56:45 -07:00
const resource = [
'user' ,
] ;
2020-01-31 05:19:16 -08:00
2021-12-03 00:44:16 -08:00
export const userOperations : INodeProperties [ ] = [
2020-01-28 07:50:15 -08:00
{
displayName : 'Operation' ,
name : 'operation' ,
type : 'options' ,
2022-05-20 14:47:24 -07:00
noDataExpression : true ,
2020-01-28 07:50:15 -08:00
displayOptions : {
show : {
2020-01-31 05:19:16 -08:00
resource ,
2020-01-28 07:50:15 -08:00
} ,
} ,
options : [
{
2020-02-07 20:38:13 -08:00
name : 'Create' ,
value : 'create' ,
2022-05-06 14:01:25 -07:00
description : 'Create a user' ,
2020-02-07 20:38:13 -08:00
} ,
{
name : 'Delete' ,
value : 'delete' ,
2022-05-06 14:01:25 -07:00
description : 'Delete a user' ,
2020-01-28 07:50:15 -08:00
} ,
{
name : 'Get' ,
value : 'get' ,
description : 'Get data of a user' ,
} ,
{
name : 'Get All' ,
value : 'getAll' ,
description : 'Get data of all users' ,
} ,
2020-02-07 20:38:13 -08:00
2020-01-31 05:19:16 -08:00
{
2020-02-07 20:38:13 -08:00
name : 'Me' ,
value : 'me' ,
description : 'Get data of authenticated user' ,
2020-01-31 05:19:16 -08:00
} ,
2020-01-31 05:24:42 -08:00
{
name : 'Update' ,
value : 'update' ,
2022-05-06 14:01:25 -07:00
description : 'Update a user' ,
2020-01-31 05:24:42 -08:00
} ,
2020-01-28 07:50:15 -08:00
] ,
2020-01-28 23:04:52 -08:00
default : 'me' ,
2020-01-28 07:50:15 -08:00
} ,
2021-12-03 00:44:16 -08:00
] ;
2020-01-28 07:50:15 -08:00
2021-12-03 00:44:16 -08:00
export const userFields : INodeProperties [ ] = [
2020-01-28 07:50:15 -08:00
2020-01-31 05:19:16 -08:00
/* -------------------------------------------------------------------------- */
2021-04-02 08:56:45 -07:00
/* user:getAll */
2020-01-31 05:19:16 -08:00
/* -------------------------------------------------------------------------- */
2020-01-28 07:50:15 -08:00
2020-01-31 05:19:16 -08:00
{
displayName : 'Return All' ,
name : 'returnAll' ,
type : 'boolean' ,
displayOptions : {
show : {
resource ,
operation : [
'getAll' ,
] ,
} ,
2020-01-28 07:50:15 -08:00
} ,
2020-01-31 05:19:16 -08:00
default : false ,
2022-05-06 14:01:25 -07:00
description : 'Whether to return all results or only up to a given limit' ,
2020-01-28 07:50:15 -08:00
} ,
2020-01-31 05:19:16 -08:00
{
displayName : 'Limit' ,
name : 'limit' ,
type : 'number' ,
displayOptions : {
show : {
resource ,
operation : [
'getAll' ,
] ,
returnAll : [
false ,
] ,
} ,
2020-01-28 07:50:15 -08:00
} ,
2020-01-31 05:19:16 -08:00
typeOptions : {
minValue : 1 ,
maxValue : 100 ,
2020-01-28 07:50:15 -08:00
} ,
2020-01-31 05:19:16 -08:00
default : 100 ,
2022-05-06 14:01:25 -07:00
description : 'Max number of results to return' ,
2020-01-28 07:50:15 -08:00
} ,
2020-01-31 05:19:16 -08:00
{
displayName : 'Filters' ,
name : 'filters' ,
type : 'collection' ,
placeholder : 'Add Filter' ,
default : { } ,
displayOptions : {
show : {
resource ,
operation : [
'getAll' ,
] ,
} ,
2020-01-28 07:50:15 -08:00
} ,
2020-01-31 05:19:16 -08:00
options : [
{
displayName : 'Is Active' ,
name : 'is_active' ,
type : 'boolean' ,
default : true ,
2022-06-20 07:54:01 -07:00
description : 'Whether to only return active users and false to return inactive users' ,
2020-01-31 05:19:16 -08:00
} ,
{
displayName : 'Updated Since' ,
name : 'updated_since' ,
type : 'dateTime' ,
default : '' ,
2022-05-06 14:01:25 -07:00
description : 'Only return users belonging to the user with the given ID' ,
2020-01-31 05:19:16 -08:00
} ,
{
displayName : 'Page' ,
name : 'page' ,
type : 'number' ,
typeOptions : {
minValue : 1 ,
} ,
default : 1 ,
2022-05-06 14:01:25 -07:00
description : 'The page number to use in pagination' ,
2020-10-22 06:46:03 -07:00
} ,
] ,
2020-01-31 05:19:16 -08:00
} ,
/* -------------------------------------------------------------------------- */
2021-04-02 08:56:45 -07:00
/* user:get */
2020-01-31 05:19:16 -08:00
/* -------------------------------------------------------------------------- */
{
2022-05-20 14:47:24 -07:00
displayName : 'User ID' ,
2020-01-31 05:19:16 -08:00
name : 'id' ,
type : 'string' ,
default : '' ,
required : true ,
displayOptions : {
show : {
operation : [
'get' ,
] ,
resource ,
} ,
2020-01-28 07:50:15 -08:00
} ,
2022-05-06 14:01:25 -07:00
description : 'The ID of the user you are retrieving' ,
2020-01-31 05:19:16 -08:00
} ,
2020-01-28 07:50:15 -08:00
2020-01-31 05:19:16 -08:00
/* -------------------------------------------------------------------------- */
2021-04-02 08:56:45 -07:00
/* user:delete */
2020-01-31 05:19:16 -08:00
/* -------------------------------------------------------------------------- */
{
2022-05-20 14:47:24 -07:00
displayName : 'User ID' ,
2020-01-31 05:19:16 -08:00
name : 'id' ,
type : 'string' ,
default : '' ,
required : true ,
displayOptions : {
show : {
operation : [
'delete' ,
] ,
resource ,
} ,
2020-01-28 07:50:15 -08:00
} ,
2022-05-06 14:01:25 -07:00
description : 'The ID of the user you want to delete' ,
2020-01-28 07:50:15 -08:00
} ,
2020-01-31 04:47:20 -08:00
2020-01-31 06:06:10 -08:00
/* -------------------------------------------------------------------------- */
2021-04-02 08:56:45 -07:00
/* user:create */
2020-01-31 06:06:10 -08:00
/* -------------------------------------------------------------------------- */
{
2020-01-31 05:19:16 -08:00
displayName : 'First Name' ,
2020-02-07 20:38:13 -08:00
name : 'firstName' ,
2020-01-31 05:19:16 -08:00
type : 'string' ,
displayOptions : {
show : {
operation : [
'create' ,
] ,
resource ,
} ,
} ,
default : '' ,
required : true ,
2022-05-06 14:01:25 -07:00
description : 'The first name of the user' ,
2020-01-31 05:19:16 -08:00
} ,
{
displayName : 'Last Name' ,
2020-02-07 20:38:13 -08:00
name : 'lastName' ,
2020-01-31 05:19:16 -08:00
type : 'string' ,
displayOptions : {
show : {
operation : [
'create' ,
] ,
resource ,
} ,
} ,
default : '' ,
required : true ,
2022-05-06 14:01:25 -07:00
description : 'The last name of the user' ,
2020-01-31 05:19:16 -08:00
} ,
{
displayName : 'Email' ,
name : 'email' ,
type : 'string' ,
2022-06-20 07:54:01 -07:00
placeholder : 'name@email.com' ,
2020-01-31 05:19:16 -08:00
displayOptions : {
show : {
operation : [
'create' ,
] ,
resource ,
} ,
2020-01-31 04:47:20 -08:00
} ,
2020-01-31 05:19:16 -08:00
default : '' ,
required : true ,
2022-05-06 14:01:25 -07:00
description : 'The email of the user' ,
2020-01-31 05:19:16 -08:00
} ,
{
displayName : 'Additional Fields' ,
name : 'additionalFields' ,
type : 'collection' ,
placeholder : 'Add Field' ,
displayOptions : {
show : {
operation : [
'create' ,
] ,
resource ,
} ,
} ,
default : { } ,
options : [
{
2021-04-02 09:10:22 -07:00
displayName : 'Can Create Invoices' ,
name : 'can_create_invoices' ,
2020-02-07 20:38:13 -08:00
type : 'boolean' ,
default : false ,
2021-04-02 09:10:22 -07:00
description : 'Whether the user can create invoices. Only applicable to Project Managers.' ,
2020-01-31 05:19:16 -08:00
} ,
{
2021-04-02 09:10:22 -07:00
displayName : 'Can Create Projects' ,
name : 'can_create_projects' ,
2020-02-07 20:38:13 -08:00
type : 'boolean' ,
default : false ,
2021-04-02 09:10:22 -07:00
description : 'Whether the user can create projects. Only applicable to Project Managers.' ,
2020-01-31 05:19:16 -08:00
} ,
{
2020-02-07 20:38:13 -08:00
displayName : 'Can See Rates' ,
name : 'can_see_rates' ,
type : 'boolean' ,
default : false ,
2020-10-22 06:46:03 -07:00
description : 'Whether the user can see billable rates on projects. Only applicable to Project Managers.' ,
2020-01-31 05:19:16 -08:00
} ,
{
2020-02-07 20:38:13 -08:00
displayName : 'Cost Rate' ,
name : 'cost_rate' ,
type : 'number' ,
typeOptions : {
minValue : 0 ,
} ,
default : 0 ,
2022-05-06 14:01:25 -07:00
description : 'The cost rate to use for this user when calculating a project’ s costs vs billable amount' ,
2020-01-31 05:19:16 -08:00
} ,
{
2020-02-07 20:38:13 -08:00
displayName : 'Default Hourly Rate' ,
name : 'default_hourly_rate' ,
2020-01-31 05:19:16 -08:00
type : 'string' ,
2020-02-07 20:38:13 -08:00
default : '0' ,
2022-05-06 14:01:25 -07:00
description : 'The billable rate to use for this user when they are added to a project' ,
2020-01-31 05:19:16 -08:00
} ,
{
2020-02-07 20:38:13 -08:00
displayName : 'Has Access To All Future Projects' ,
name : 'has_access_to_all_future_projects' ,
type : 'boolean' ,
default : false ,
2022-05-06 14:01:25 -07:00
description : 'Whether the user should be automatically added to future projects' ,
2020-01-31 05:19:16 -08:00
} ,
{
2020-02-07 20:38:13 -08:00
displayName : 'Is Active' ,
name : 'is_active' ,
type : 'boolean' ,
default : true ,
2022-05-06 14:01:25 -07:00
description : 'Whether the user is active or archived' ,
2020-01-31 05:19:16 -08:00
} ,
{
2020-02-07 20:38:13 -08:00
displayName : 'Is Admin' ,
name : 'is_admin' ,
type : 'boolean' ,
default : false ,
2022-05-06 14:01:25 -07:00
description : 'Whether the user has Admin permissions' ,
2020-01-31 05:19:16 -08:00
} ,
{
2020-02-07 20:38:13 -08:00
displayName : 'Is Contractor' ,
name : 'is_contractor' ,
type : 'boolean' ,
default : false ,
2022-05-06 14:01:25 -07:00
description : 'Whether the user is a contractor or an employee' ,
2020-01-31 05:19:16 -08:00
} ,
{
2020-02-07 20:38:13 -08:00
displayName : 'Is Project Manager' ,
name : 'is_project_manager' ,
type : 'boolean' ,
default : false ,
2022-05-06 14:01:25 -07:00
description : 'Whether the user has Project Manager permissions' ,
2020-01-31 05:19:16 -08:00
} ,
{
2020-02-07 20:38:13 -08:00
displayName : 'Roles' ,
name : 'roles' ,
2020-01-31 05:19:16 -08:00
type : 'string' ,
default : '' ,
2022-05-06 14:01:25 -07:00
description : 'The role names assigned to this person' ,
2020-01-31 05:19:16 -08:00
} ,
{
2020-02-07 20:38:13 -08:00
displayName : 'Timezone' ,
name : 'timezone' ,
2020-01-31 05:19:16 -08:00
type : 'string' ,
default : '' ,
2022-05-06 14:01:25 -07:00
// eslint-disable-next-line n8n-nodes-base/node-param-description-url-missing-protocol
2020-10-22 06:46:03 -07:00
description : 'The user’ s timezone. Defaults to the company’ s timezone. See a list of <a href="/api-v2/introduction/overview/supported-timezones/">supported time zones</a>.' ,
2020-01-31 05:19:16 -08:00
} ,
{
2020-02-07 20:38:13 -08:00
displayName : 'Weekly Capacity' ,
name : 'weekly_capacity' ,
type : 'number' ,
typeOptions : {
minValue : 0 ,
} ,
default : 126000 ,
2020-10-22 06:46:03 -07:00
description : 'The number of hours per week this person is available to work in seconds. Defaults to <code class="language-plaintext highlighter-rouge">126000</code> seconds (35 hours).' ,
2020-01-31 05:19:16 -08:00
} ,
] ,
2020-01-31 04:47:20 -08:00
} ,
2020-01-28 07:50:15 -08:00
2020-01-31 06:06:10 -08:00
/* -------------------------------------------------------------------------- */
2021-04-02 08:56:45 -07:00
/* user:update */
2020-01-31 06:06:10 -08:00
/* -------------------------------------------------------------------------- */
{
2022-05-20 14:47:24 -07:00
displayName : 'Time Entry ID' ,
2020-01-31 06:06:10 -08:00
name : 'id' ,
type : 'string' ,
default : '' ,
required : true ,
displayOptions : {
show : {
operation : [
'update' ,
] ,
resource ,
} ,
2020-01-31 05:24:42 -08:00
} ,
2022-05-06 14:01:25 -07:00
description : 'The ID of the time entry to update' ,
2020-01-31 05:24:42 -08:00
} ,
2020-01-31 06:06:10 -08:00
{
displayName : 'Update Fields' ,
name : 'updateFields' ,
type : 'collection' ,
placeholder : 'Add Field' ,
displayOptions : {
show : {
operation : [
'update' ,
] ,
2020-10-22 06:46:03 -07:00
resource ,
2020-01-31 06:06:10 -08:00
} ,
2020-01-31 05:24:42 -08:00
} ,
2020-01-31 06:06:10 -08:00
default : { } ,
options : [
{
2021-04-02 09:10:22 -07:00
displayName : 'Can Create Invoices' ,
name : 'can_create_invoices' ,
2020-02-07 20:38:13 -08:00
type : 'boolean' ,
default : false ,
2021-04-02 09:10:22 -07:00
description : 'Whether the user can create invoices. Only applicable to Project Managers.' ,
2020-01-31 06:06:10 -08:00
} ,
{
2021-04-02 09:10:22 -07:00
displayName : 'Can Create Projects' ,
name : 'can_create_projects' ,
2020-02-07 20:38:13 -08:00
type : 'boolean' ,
default : false ,
2021-04-02 09:10:22 -07:00
description : 'Whether the user can create projects. Only applicable to Project Managers.' ,
2020-02-07 20:38:13 -08:00
} ,
{
displayName : 'Can See Rates' ,
name : 'can_see_rates' ,
type : 'boolean' ,
default : false ,
2020-10-22 06:46:03 -07:00
description : 'Whether the user can see billable rates on projects. Only applicable to Project Managers.' ,
2020-02-07 20:38:13 -08:00
} ,
{
displayName : 'Cost Rate' ,
name : 'cost_rate' ,
type : 'number' ,
typeOptions : {
minValue : 0 ,
} ,
default : 0 ,
2022-05-06 14:01:25 -07:00
description : 'The cost rate to use for this user when calculating a project’ s costs vs billable amount' ,
2020-02-07 20:38:13 -08:00
} ,
{
displayName : 'Default Hourly Rate' ,
name : 'default_hourly_rate' ,
2020-01-31 06:06:10 -08:00
type : 'string' ,
2020-02-07 20:38:13 -08:00
default : '0' ,
2022-05-06 14:01:25 -07:00
description : 'The billable rate to use for this user when they are added to a project' ,
2020-01-31 06:06:10 -08:00
} ,
{
displayName : 'Email' ,
name : 'email' ,
type : 'string' ,
2022-06-20 07:54:01 -07:00
placeholder : 'name@email.com' ,
2020-01-31 06:06:10 -08:00
default : '' ,
2020-10-22 06:46:03 -07:00
description : 'The user email' ,
2020-01-31 06:06:10 -08:00
} ,
{
2020-02-07 20:38:13 -08:00
displayName : 'First Name' ,
name : 'first_name' ,
2020-01-31 06:06:10 -08:00
type : 'string' ,
default : '' ,
2020-10-22 06:46:03 -07:00
description : 'The user first name' ,
2020-01-31 06:06:10 -08:00
} ,
{
displayName : 'Has Access To All Future Projects' ,
name : 'has_access_to_all_future_projects' ,
2020-02-07 20:38:13 -08:00
type : 'boolean' ,
default : false ,
2022-05-06 14:01:25 -07:00
description : 'Whether the user should be automatically added to future projects' ,
2020-01-31 06:06:10 -08:00
} ,
{
2020-02-07 20:38:13 -08:00
displayName : 'Is Active' ,
name : 'is_active' ,
type : 'boolean' ,
default : true ,
2022-05-06 14:01:25 -07:00
description : 'Whether the user is active or archived' ,
2020-01-31 06:06:10 -08:00
} ,
{
displayName : 'Is Admin' ,
name : 'is_admin' ,
2020-02-07 20:38:13 -08:00
type : 'boolean' ,
default : false ,
2022-05-06 14:01:25 -07:00
description : 'Whether the user has Admin permissions' ,
2020-01-31 06:06:10 -08:00
} ,
{
2020-02-07 20:38:13 -08:00
displayName : 'Is Contractor' ,
name : 'is_contractor' ,
type : 'boolean' ,
default : false ,
2022-05-06 14:01:25 -07:00
description : 'Whether the user is a contractor or an employee' ,
2020-01-31 06:06:10 -08:00
} ,
{
2020-02-07 20:38:13 -08:00
displayName : 'Is Project Manager' ,
name : 'is_project_manager' ,
type : 'boolean' ,
default : false ,
2022-05-06 14:01:25 -07:00
description : 'Whether the user has Project Manager permissions' ,
2020-01-31 06:06:10 -08:00
} ,
{
2020-02-07 20:38:13 -08:00
displayName : 'Last Name' ,
name : 'last_name' ,
2020-01-31 06:06:10 -08:00
type : 'string' ,
default : '' ,
2020-10-22 06:46:03 -07:00
description : 'The user last name' ,
2020-01-31 06:06:10 -08:00
} ,
{
2020-02-07 20:38:13 -08:00
displayName : 'Roles' ,
name : 'roles' ,
2020-01-31 06:06:10 -08:00
type : 'string' ,
default : '' ,
2022-05-06 14:01:25 -07:00
description : 'The role names assigned to this person' ,
2020-01-31 06:06:10 -08:00
} ,
{
2020-02-07 20:38:13 -08:00
displayName : 'Timezone' ,
name : 'timezone' ,
2020-01-31 06:06:10 -08:00
type : 'string' ,
default : '' ,
2022-05-06 14:01:25 -07:00
// eslint-disable-next-line n8n-nodes-base/node-param-description-url-missing-protocol
2020-10-22 06:46:03 -07:00
description : 'The user’ s timezone. Defaults to the company’ s timezone. See a list of <a href="/api-v2/introduction/overview/supported-timezones/">supported time zones</a>.' ,
2020-01-31 06:06:10 -08:00
} ,
{
displayName : 'Weekly Capacity' ,
name : 'weekly_capacity' ,
2020-02-07 20:38:13 -08:00
type : 'number' ,
typeOptions : {
minValue : 0 ,
} ,
default : 126000 ,
2020-10-22 06:46:03 -07:00
description : 'The number of hours per week this person is available to work in seconds. Defaults to <code class="language-plaintext highlighter-rouge">126000</code> seconds (35 hours).' ,
2020-01-31 06:06:10 -08:00
} ,
] ,
2020-01-31 05:24:42 -08:00
} ,
2021-12-03 00:44:16 -08:00
] ;