n8n/packages/nodes-base/nodes/Harvest/TimeEntryDescription.ts
2020-02-07 20:38:13 -08:00

549 lines
12 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import { INodeProperties } from 'n8n-workflow';
export const resource = [ 'timeEntry' ];
export const timeEntryOperations = [
{
displayName: 'Operation',
name: 'operation',
type: 'options',
displayOptions: {
show: {
resource,
},
},
options: [
{
name: 'Create via Duration',
value: 'createByDuration',
description: 'Create a time entry via duration',
},
{
name: 'Create via Start and End Time',
value: 'createByStartEnd',
description: 'Create a time entry via start and end time',
},
{
name: 'Delete',
value: 'delete',
description: `Delete a time entry`,
},
{
name: 'Delete External Reference',
value: 'deleteExternal',
description: `Delete a time entrys external reference.`,
},
{
name: 'Get',
value: 'get',
description: 'Get data of a time entry',
},
{
name: 'Get All',
value: 'getAll',
description: 'Get data of all time entries',
},
{
name: 'Restart',
value: 'restartTime',
description: 'Restart a time entry',
},
{
name: 'Stop',
value: 'stopTime',
description: 'Stop a time entry',
},
{
name: 'Update',
value: 'update',
description: 'Update a time entry',
},
],
default: 'getAll',
description: 'The operation to perform.',
},
] as INodeProperties[];
export const timeEntryFields = [
/* -------------------------------------------------------------------------- */
/* timeEntry:getAll */
/* -------------------------------------------------------------------------- */
{
displayName: 'Return All',
name: 'returnAll',
type: 'boolean',
displayOptions: {
show: {
resource,
operation: [
'getAll',
],
},
},
default: false,
description: 'Returns a list of your time entries.',
},
{
displayName: 'Limit',
name: 'limit',
type: 'number',
displayOptions: {
show: {
resource,
operation: [
'getAll',
],
returnAll: [
false,
],
},
},
typeOptions: {
minValue: 1,
maxValue: 100,
},
default: 100,
description: 'How many results to return.',
},
{
displayName: 'Filters',
name: 'filters',
type: 'collection',
placeholder: 'Add Filter',
default: {},
displayOptions: {
show: {
resource,
operation: [
'getAll',
],
},
},
options: [
{
displayName: 'Client ID',
name: 'client_id',
type: 'string',
default: '',
description: 'Only return time entries belonging to the client with the given ID.',
},
{
displayName: 'From',
name: 'from',
type: 'dateTime',
default: '',
description: 'Only return time entries with a spent_date on or after the given date.',
},
{
displayName: 'Is Billed',
name: 'is_billed',
type: 'boolean',
default: true,
description: 'Pass true to only return time entries that have been invoiced and false to return time entries that have not been invoiced.',
},
{
displayName: 'Is Running',
name: 'is_running',
type: 'boolean',
default: true,
description: 'Pass true to only return running time entries and false to return non-running time entries.',
},
{
displayName: 'To',
name: 'to',
type: 'dateTime',
default: '',
description: 'Only return time entries with a spent_date on or before the given date.',
},
{
displayName: 'Updated Since',
name: 'updated_since',
type: 'dateTime',
default: '',
description: 'Only return time entries that have been updated since the given date and time.',
},
{
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)',
},
{
displayName: 'User ID',
name: 'user_id',
type: 'string',
default: '',
description: 'Only return time entries belonging to the user with the given ID.',
},
],
},
/* -------------------------------------------------------------------------- */
/* timeEntry:get */
/* -------------------------------------------------------------------------- */
{
displayName: 'Time Entry Id',
name: 'id',
type: 'string',
default: '',
required: true,
displayOptions: {
show: {
operation: [
'get',
],
resource,
},
},
description: 'The ID of the time entry you are retrieving.',
},
/* -------------------------------------------------------------------------- */
/* timeEntry:delete */
/* -------------------------------------------------------------------------- */
{
displayName: 'Time Entry Id',
name: 'id',
type: 'string',
default: '',
required: true,
displayOptions: {
show: {
operation: [
'delete',
],
resource,
},
},
description: 'The ID of the time entry you are deleting.',
},
/* -------------------------------------------------------------------------- */
/* timeEntry:deleteExternal */
/* -------------------------------------------------------------------------- */
{
displayName: 'Time Entry Id',
name: 'id',
type: 'string',
default: '',
required: true,
displayOptions: {
show: {
operation: [
'deleteExternal',
],
resource,
},
},
description: 'The ID of the time entry whose external reference you are deleting.',
},
/* -------------------------------------------------------------------------- */
/* timeEntry:stopTime */
/* -------------------------------------------------------------------------- */
{
displayName: 'Time Entry Id',
name: 'id',
type: 'string',
default: '',
required: true,
displayOptions: {
show: {
operation: [
'stopTime',
],
resource,
},
},
description: 'Stop a running time entry. Stopping a time entry is only possible if its currently running.',
},
/* -------------------------------------------------------------------------- */
/* timeEntry:restartTime */
/* -------------------------------------------------------------------------- */
{
displayName: 'Time Entry Id',
name: 'id',
type: 'string',
default: '',
required: true,
displayOptions: {
show: {
operation: [
'restartTime',
],
resource,
},
},
description: 'Restart a stopped time entry. Restarting a time entry is only possible if it isnt currently running.',
},
/* -------------------------------------------------------------------------- */
/* timeEntry:update */
/* -------------------------------------------------------------------------- */
{
displayName: 'Time Entry Id',
name: 'id',
type: 'string',
default: '',
required: true,
displayOptions: {
show: {
operation: [
'update',
],
resource,
},
},
description: 'The ID of the time entry to update.',
},
{
displayName: 'Update Fields',
name: 'updateFields',
type: 'collection',
placeholder: 'Add Field',
displayOptions: {
show: {
operation: [
'update',
],
resource,
},
},
default: {},
options: [
{
displayName: 'Ended Time',
name: 'ended_time',
type: 'string',
default: '',
placeholder: '3:00pm',
description: 'The time the entry ended.',
},
{
displayName: 'Hours',
name: 'hours',
type: 'number',
typeOptions: {
minValue: 0,
},
default: 0,
description: 'The current amount of time tracked.',
},
{
displayName: 'Notes',
name: 'notes',
type: 'string',
default: '',
description: 'These are notes about the time entry..',
},
{
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”.',
},
],
},
/* -------------------------------------------------------------------------- */
/* timeEntry:createByDuration */
/* -------------------------------------------------------------------------- */
{
displayName: 'Project Id',
name: 'projectId',
type: 'string',
displayOptions: {
show: {
operation: [
'createByDuration',
],
resource,
},
},
default: '',
required: true,
description: 'The ID of the project to associate with the time entry.',
},
{
displayName: 'Task Id',
name: 'taskId',
type: 'string',
displayOptions: {
show: {
operation: [
'createByDuration',
],
resource,
},
},
default: '',
required: true,
description: 'The ID of the task to associate with the time entry.',
},
{
displayName: 'Spent Date',
name: 'spentDate',
type: 'dateTime',
displayOptions: {
show: {
operation: [
'createByDuration',
],
resource,
},
},
default: '',
required: true,
description: 'The ISO 8601 formatted date the time entry was spent.',
},
{
displayName: 'Additional Fields',
name: 'additionalFields',
type: 'collection',
placeholder: 'Add Field',
displayOptions: {
show: {
operation: [
'createByDuration',
],
resource,
},
},
default: {},
options: [
{
displayName: 'Hours',
name: 'hours',
type: 'number',
typeOptions: {
minValue: 0,
},
default: 0,
description: 'The current amount of time tracked.',
},
{
displayName: 'Notes',
name: 'notes',
type: 'string',
default: '',
description: 'These are notes about the time entry..',
},
{
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 users ID.',
},
],
},
/* -------------------------------------------------------------------------- */
/* timeEntry:createByStartEnd */
/* -------------------------------------------------------------------------- */
{
displayName: 'Project Id',
name: 'projectId',
type: 'string',
displayOptions: {
show: {
operation: [
'createByStartEnd',
],
resource,
},
},
default: '',
required: true,
description: 'The ID of the project to associate with the time entry.',
},
{
displayName: 'Task Id',
name: 'taskId',
type: 'string',
displayOptions: {
show: {
operation: [
'createByStartEnd',
],
resource,
},
},
default: '',
required: true,
description: 'The ID of the task to associate with the time entry.',
},
{
displayName: 'Spent Date',
name: 'spentDate',
type: 'dateTime',
displayOptions: {
show: {
operation: [
'createByStartEnd',
],
resource,
},
},
default: '',
required: true,
description: 'The ISO 8601 formatted date the time entry was spent.',
},
{
displayName: 'Additional Fields',
name: 'additionalFields',
type: 'collection',
placeholder: 'Add Field',
displayOptions: {
show: {
operation: [
'createByStartEnd',
],
resource,
},
},
default: {},
options: [
{
displayName: 'Ended Time',
name: 'ended_time',
type: 'string',
default: '',
placeholder: '3:00pm',
description: 'The time the entry ended.',
},
{
displayName: 'Notes',
name: 'notes',
type: 'string',
default: '',
description: 'These are notes about the time entry..',
},
{
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 users ID.',
},
],
},
] as INodeProperties[];