2021-04-02 09:10:22 -07:00
import {
2021-04-02 08:56:45 -07:00
INodeProperties ,
} from 'n8n-workflow' ;
export const resource = [
'timeEntry' ,
] ;
2021-12-03 00:44:16 -08:00
export const timeEntryOperations : INodeProperties [ ] = [
2020-01-28 06:46:38 -08:00
{
displayName : 'Operation' ,
name : 'operation' ,
type : 'options' ,
2022-05-20 14:47:24 -07:00
noDataExpression : true ,
2020-01-28 06:46:38 -08:00
displayOptions : {
show : {
2020-01-31 05:32:14 -08:00
resource ,
2020-01-28 06:46:38 -08:00
} ,
} ,
options : [
{
name : 'Create via Duration' ,
value : 'createByDuration' ,
description : 'Create a time entry via duration' ,
2022-07-10 13:50:51 -07:00
action : 'Create a time entry via duration' ,
2020-01-28 06:46:38 -08:00
} ,
{
name : 'Create via Start and End Time' ,
value : 'createByStartEnd' ,
description : 'Create a time entry via start and end time' ,
2022-07-10 13:50:51 -07:00
action : 'Create a time entry via start and end time' ,
2020-01-28 06:46:38 -08:00
} ,
{
name : 'Delete' ,
value : 'delete' ,
2022-05-06 14:01:25 -07:00
description : 'Delete a time entry' ,
2022-07-10 13:50:51 -07:00
action : 'Delete a time entry' ,
2020-01-28 06:46:38 -08:00
} ,
{
name : 'Delete External Reference' ,
value : 'deleteExternal' ,
2022-05-06 14:01:25 -07:00
description : 'Delete a time entry’ s external reference' ,
2022-07-10 13:50:51 -07:00
action : 'Delete a time entry’ s external reference' ,
2020-01-28 06:46:38 -08:00
} ,
{
name : 'Get' ,
value : 'get' ,
description : 'Get data of a time entry' ,
2022-07-10 13:50:51 -07:00
action : 'Get data of a time entry' ,
2020-01-28 06:46:38 -08:00
} ,
{
name : 'Get All' ,
value : 'getAll' ,
description : 'Get data of all time entries' ,
2022-07-10 13:50:51 -07:00
action : 'Get data of all time entries' ,
2020-01-28 06:46:38 -08:00
} ,
{
name : 'Restart' ,
value : 'restartTime' ,
description : 'Restart a time entry' ,
2022-07-10 13:50:51 -07:00
action : 'Restart a time entry' ,
2020-01-28 06:46:38 -08:00
} ,
{
name : 'Stop' ,
value : 'stopTime' ,
description : 'Stop a time entry' ,
2022-07-10 13:50:51 -07:00
action : 'Stop a time entry' ,
2020-01-28 06:46:38 -08:00
} ,
{
name : 'Update' ,
value : 'update' ,
description : 'Update a time entry' ,
2022-07-10 13:50:51 -07:00
action : 'Update a time entry' ,
2020-01-28 06:46:38 -08:00
} ,
] ,
2020-01-28 23:04:52 -08:00
default : 'getAll' ,
2020-01-28 06:46:38 -08:00
} ,
2021-12-03 00:44:16 -08:00
] ;
2020-01-28 06:46:38 -08:00
2021-12-03 00:44:16 -08:00
export const timeEntryFields : INodeProperties [ ] = [
2020-11-24 05:15:47 -08:00
/* -------------------------------------------------------------------------- */
/* timeEntry:getAll */
/* -------------------------------------------------------------------------- */
2020-01-28 06:46:38 -08:00
2020-11-24 05:15:47 -08:00
{
displayName : 'Return All' ,
name : 'returnAll' ,
type : 'boolean' ,
displayOptions : {
show : {
resource ,
operation : [
'getAll' ,
] ,
} ,
2020-01-28 06:46:38 -08:00
} ,
2020-11-24 05:15:47 -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 06:46:38 -08:00
} ,
2020-11-24 05:15:47 -08:00
{
displayName : 'Limit' ,
name : 'limit' ,
type : 'number' ,
displayOptions : {
show : {
resource ,
operation : [
'getAll' ,
] ,
returnAll : [
false ,
] ,
} ,
2020-01-28 06:46:38 -08:00
} ,
2020-11-24 05:15:47 -08:00
typeOptions : {
minValue : 1 ,
maxValue : 100 ,
2020-01-28 06:46:38 -08:00
} ,
2020-11-24 05:15:47 -08:00
default : 100 ,
2022-05-06 14:01:25 -07:00
description : 'Max number of results to return' ,
2020-01-28 06:46:38 -08:00
} ,
2020-11-24 05:15:47 -08:00
{
displayName : 'Filters' ,
name : 'filters' ,
type : 'collection' ,
placeholder : 'Add Filter' ,
default : { } ,
displayOptions : {
show : {
resource ,
operation : [
'getAll' ,
] ,
} ,
2020-02-07 20:38:13 -08:00
} ,
2020-11-24 05:15:47 -08:00
options : [
{
displayName : 'Client ID' ,
name : 'client_id' ,
type : 'string' ,
default : '' ,
2022-05-06 14:01:25 -07:00
description : 'Only return time entries belonging to the client with the given ID' ,
2020-11-24 05:15:47 -08:00
} ,
{
displayName : 'From' ,
name : 'from' ,
type : 'dateTime' ,
default : '' ,
2022-05-06 14:01:25 -07:00
description : 'Only return time entries with a spent_date on or after the given date' ,
2020-11-24 05:15:47 -08:00
} ,
{
displayName : 'Is Billed' ,
name : 'is_billed' ,
type : 'boolean' ,
default : true ,
2022-06-20 07:54:01 -07:00
description : 'Whether to only return time entries that have been invoiced and false to return time entries that have not been invoiced' ,
2020-11-24 05:15:47 -08:00
} ,
{
displayName : 'Is Running' ,
name : 'is_running' ,
type : 'boolean' ,
default : true ,
2022-06-20 07:54:01 -07:00
description : 'Whether to only return running time entries and false to return non-running time entries' ,
2020-11-24 05:15:47 -08:00
} ,
2021-04-02 09:10:22 -07:00
{
displayName : 'Page' ,
name : 'page' ,
type : 'number' ,
typeOptions : {
minValue : 1 ,
} ,
default : 1 ,
description : 'The page number to use in pagination. For instance, if you make a list request and receive 100 records, your subsequent call can include page=2 to retrieve the next page of the list. (Default: 1)' ,
} ,
2020-11-24 05:15:47 -08:00
{
displayName : 'To' ,
name : 'to' ,
type : 'dateTime' ,
default : '' ,
2022-05-06 14:01:25 -07:00
description : 'Only return time entries with a spent_date on or before the given date' ,
2020-11-24 05:15:47 -08:00
} ,
{
displayName : 'Updated Since' ,
name : 'updated_since' ,
type : 'dateTime' ,
default : '' ,
2022-05-06 14:01:25 -07:00
description : 'Only return time entries that have been updated since the given date and time' ,
2020-11-24 05:15:47 -08:00
} ,
{
displayName : 'User ID' ,
name : 'user_id' ,
type : 'string' ,
default : '' ,
2022-05-06 14:01:25 -07:00
description : 'Only return time entries belonging to the user with the given ID' ,
2020-11-24 05:15:47 -08:00
} ,
] ,
} ,
2020-01-28 06:46:38 -08:00
2020-11-24 05:15:47 -08:00
/* -------------------------------------------------------------------------- */
/* timeEntry:get */
/* -------------------------------------------------------------------------- */
{
2022-05-20 14:47:24 -07:00
displayName : 'Time Entry ID' ,
2020-11-24 05:15:47 -08:00
name : 'id' ,
type : 'string' ,
default : '' ,
required : true ,
displayOptions : {
show : {
operation : [
'get' ,
] ,
resource ,
} ,
2020-01-28 06:46:38 -08:00
} ,
2022-05-06 14:01:25 -07:00
description : 'The ID of the time entry you are retrieving' ,
2020-01-28 06:46:38 -08:00
} ,
2020-11-24 05:15:47 -08:00
/* -------------------------------------------------------------------------- */
/* timeEntry:delete */
/* -------------------------------------------------------------------------- */
{
2022-05-20 14:47:24 -07:00
displayName : 'Time Entry ID' ,
2020-11-24 05:15:47 -08:00
name : 'id' ,
type : 'string' ,
default : '' ,
required : true ,
displayOptions : {
show : {
operation : [
'delete' ,
] ,
resource ,
} ,
2020-01-28 06:46:38 -08:00
} ,
2022-05-06 14:01:25 -07:00
description : 'The ID of the time entry you are deleting' ,
2020-01-28 06:46:38 -08:00
} ,
2020-11-24 05:15:47 -08:00
/* -------------------------------------------------------------------------- */
/* timeEntry:deleteExternal */
/* -------------------------------------------------------------------------- */
{
2022-05-20 14:47:24 -07:00
displayName : 'Time Entry ID' ,
2020-11-24 05:15:47 -08:00
name : 'id' ,
type : 'string' ,
default : '' ,
required : true ,
displayOptions : {
show : {
operation : [
'deleteExternal' ,
] ,
resource ,
} ,
2020-01-28 06:46:38 -08:00
} ,
2022-05-06 14:01:25 -07:00
description : 'The ID of the time entry whose external reference you are deleting' ,
2020-01-28 06:46:38 -08:00
} ,
2020-11-24 05:15:47 -08:00
/* -------------------------------------------------------------------------- */
/* timeEntry:stopTime */
/* -------------------------------------------------------------------------- */
{
2022-05-20 14:47:24 -07:00
displayName : 'Time Entry ID' ,
2020-11-24 05:15:47 -08:00
name : 'id' ,
type : 'string' ,
default : '' ,
required : true ,
displayOptions : {
show : {
operation : [
'stopTime' ,
] ,
resource ,
} ,
2020-01-28 06:46:38 -08:00
} ,
2020-11-24 05:15:47 -08:00
description : 'Stop a running time entry. Stopping a time entry is only possible if it’ s currently running.' ,
2020-01-28 06:46:38 -08:00
} ,
2020-11-24 05:15:47 -08:00
/* -------------------------------------------------------------------------- */
/* timeEntry:restartTime */
/* -------------------------------------------------------------------------- */
{
2022-05-20 14:47:24 -07:00
displayName : 'Time Entry ID' ,
2020-11-24 05:15:47 -08:00
name : 'id' ,
type : 'string' ,
default : '' ,
required : true ,
displayOptions : {
show : {
operation : [
'restartTime' ,
] ,
resource ,
} ,
2020-01-28 06:46:38 -08:00
} ,
2020-11-24 05:15:47 -08:00
description : 'Restart a stopped time entry. Restarting a time entry is only possible if it isn’ t currently running.' ,
2020-01-28 06:46:38 -08:00
} ,
2020-11-24 05:15:47 -08:00
/* -------------------------------------------------------------------------- */
/* timeEntry:update */
/* -------------------------------------------------------------------------- */
{
2022-05-20 14:47:24 -07:00
displayName : 'Time Entry ID' ,
2020-11-24 05:15:47 -08:00
name : 'id' ,
type : 'string' ,
default : '' ,
required : true ,
displayOptions : {
show : {
operation : [
'update' ,
] ,
resource ,
} ,
2020-01-28 06:46:38 -08:00
} ,
2022-05-06 14:01:25 -07:00
description : 'The ID of the time entry to update' ,
2020-01-28 06:46:38 -08:00
} ,
2020-11-24 05:15:47 -08:00
{
displayName : 'Update Fields' ,
name : 'updateFields' ,
type : 'collection' ,
placeholder : 'Add Field' ,
displayOptions : {
show : {
operation : [
'update' ,
] ,
resource ,
} ,
2020-01-28 06:46:38 -08:00
} ,
2020-11-24 05:15:47 -08:00
default : { } ,
options : [
{
displayName : 'Ended Time' ,
name : 'ended_time' ,
type : 'string' ,
default : '' ,
placeholder : '3:00pm' ,
2022-05-06 14:01:25 -07:00
description : 'The time the entry ended' ,
2020-11-24 05:15:47 -08:00
} ,
{
displayName : 'Hours' ,
name : 'hours' ,
type : 'number' ,
typeOptions : {
minValue : 0 ,
} ,
default : 0 ,
2022-05-06 14:01:25 -07:00
description : 'The current amount of time tracked' ,
2020-11-24 05:15:47 -08:00
} ,
{
displayName : 'Notes' ,
name : 'notes' ,
type : 'string' ,
default : '' ,
2022-05-06 14:01:25 -07:00
description : 'These are notes about the time entry' ,
2020-11-24 05:15:47 -08:00
} ,
{
displayName : 'Started Time' ,
name : 'started_time' ,
type : 'string' ,
default : '' ,
placeholder : '3:00pm' ,
description : 'The time the entry started. Defaults to the current time. Example: “8:00am”.' ,
} ,
] ,
2020-01-28 06:46:38 -08:00
} ,
2020-11-24 05:15:47 -08:00
/* -------------------------------------------------------------------------- */
/* timeEntry:createByDuration */
/* -------------------------------------------------------------------------- */
{
2022-05-20 14:47:24 -07:00
displayName : 'Project ID' ,
2020-11-24 05:15:47 -08:00
name : 'projectId' ,
type : 'string' ,
displayOptions : {
show : {
operation : [
'createByDuration' ,
] ,
resource ,
} ,
2020-01-29 15:51:14 -08:00
} ,
2020-11-24 05:15:47 -08:00
default : '' ,
required : true ,
2022-05-06 14:01:25 -07:00
description : 'The ID of the project to associate with the time entry' ,
2020-01-29 15:51:14 -08:00
} ,
2020-11-24 05:15:47 -08:00
{
2022-05-20 14:47:24 -07:00
displayName : 'Task ID' ,
2020-11-24 05:15:47 -08:00
name : 'taskId' ,
type : 'string' ,
displayOptions : {
show : {
operation : [
'createByDuration' ,
] ,
resource ,
} ,
2020-01-29 15:51:14 -08:00
} ,
2020-11-24 05:15:47 -08:00
default : '' ,
required : true ,
2022-05-06 14:01:25 -07:00
description : 'The ID of the task to associate with the time entry' ,
2020-01-29 15:51:14 -08:00
} ,
2020-11-24 05:15:47 -08:00
{
displayName : 'Spent Date' ,
name : 'spentDate' ,
type : 'dateTime' ,
displayOptions : {
show : {
operation : [
'createByDuration' ,
] ,
resource ,
} ,
2020-01-29 15:51:14 -08:00
} ,
2020-11-24 05:15:47 -08:00
default : '' ,
required : true ,
2022-05-06 14:01:25 -07:00
description : 'The ISO 8601 formatted date the time entry was spent' ,
2020-01-29 15:51:14 -08:00
} ,
2020-11-24 05:15:47 -08:00
{
displayName : 'Additional Fields' ,
name : 'additionalFields' ,
type : 'collection' ,
placeholder : 'Add Field' ,
displayOptions : {
show : {
operation : [
'createByDuration' ,
] ,
resource ,
} ,
2020-01-28 06:46:38 -08:00
} ,
2020-11-24 05:15:47 -08:00
default : { } ,
options : [
{
displayName : 'Hours' ,
name : 'hours' ,
type : 'number' ,
typeOptions : {
minValue : 0 ,
} ,
default : 0 ,
2022-05-06 14:01:25 -07:00
description : 'The current amount of time tracked' ,
2020-11-24 05:15:47 -08:00
} ,
{
displayName : 'Notes' ,
name : 'notes' ,
type : 'string' ,
default : '' ,
2022-05-06 14:01:25 -07:00
description : 'These are notes about the time entry' ,
2020-11-24 05:15:47 -08:00
} ,
{
displayName : 'User ID' ,
name : 'user_id' ,
type : 'string' ,
default : '' ,
description : 'The ID of the user to associate with the time entry. Defaults to the currently authenticated user’ s ID.' ,
} ,
] ,
2020-01-28 06:46:38 -08:00
} ,
2020-11-24 05:15:47 -08:00
/* -------------------------------------------------------------------------- */
/* timeEntry:createByStartEnd */
/* -------------------------------------------------------------------------- */
{
2022-05-20 14:47:24 -07:00
displayName : 'Project ID' ,
2020-11-24 05:15:47 -08:00
name : 'projectId' ,
type : 'string' ,
displayOptions : {
show : {
operation : [
'createByStartEnd' ,
] ,
resource ,
} ,
2020-01-29 15:51:14 -08:00
} ,
2020-11-24 05:15:47 -08:00
default : '' ,
required : true ,
2022-05-06 14:01:25 -07:00
description : 'The ID of the project to associate with the time entry' ,
2020-01-29 15:51:14 -08:00
} ,
2020-11-24 05:15:47 -08:00
{
2022-05-20 14:47:24 -07:00
displayName : 'Task ID' ,
2020-11-24 05:15:47 -08:00
name : 'taskId' ,
type : 'string' ,
displayOptions : {
show : {
operation : [
'createByStartEnd' ,
] ,
resource ,
} ,
2020-01-29 15:51:14 -08:00
} ,
2020-11-24 05:15:47 -08:00
default : '' ,
required : true ,
2022-05-06 14:01:25 -07:00
description : 'The ID of the task to associate with the time entry' ,
2020-01-29 15:51:14 -08:00
} ,
2020-11-24 05:15:47 -08:00
{
displayName : 'Spent Date' ,
name : 'spentDate' ,
type : 'dateTime' ,
displayOptions : {
show : {
operation : [
'createByStartEnd' ,
] ,
resource ,
} ,
2020-01-29 15:51:14 -08:00
} ,
2020-11-24 05:15:47 -08:00
default : '' ,
required : true ,
2022-05-06 14:01:25 -07:00
description : 'The ISO 8601 formatted date the time entry was spent' ,
2020-01-29 15:51:14 -08:00
} ,
2020-11-24 05:15:47 -08:00
{
displayName : 'Additional Fields' ,
name : 'additionalFields' ,
type : 'collection' ,
placeholder : 'Add Field' ,
displayOptions : {
show : {
operation : [
'createByStartEnd' ,
] ,
resource ,
} ,
2020-01-28 06:46:38 -08:00
} ,
2020-11-24 05:15:47 -08:00
default : { } ,
options : [
{
displayName : 'Ended Time' ,
name : 'ended_time' ,
type : 'string' ,
default : '' ,
placeholder : '3:00pm' ,
2022-05-06 14:01:25 -07:00
description : 'The time the entry ended' ,
2020-11-24 05:15:47 -08:00
} ,
{
displayName : 'Notes' ,
name : 'notes' ,
type : 'string' ,
default : '' ,
2022-05-06 14:01:25 -07:00
description : 'These are notes about the time entry' ,
2020-11-24 05:15:47 -08:00
} ,
{
displayName : 'Started Time' ,
name : 'started_time' ,
type : 'string' ,
default : '' ,
placeholder : '8:00am' ,
description : 'The time the entry started. Defaults to the current time. Example: “8:00am”.' ,
} ,
{
displayName : 'User ID' ,
name : 'user_id' ,
type : 'string' ,
default : '' ,
description : 'The ID of the user to associate with the time entry. Defaults to the currently authenticated user’ s ID.' ,
} ,
] ,
2020-01-28 06:46:38 -08:00
} ,
2021-12-03 00:44:16 -08:00
] ;