2020-02-07 20:38:13 -08:00
import { INodeProperties } from 'n8n-workflow' ;
2020-01-28 07:50:15 -08:00
2020-11-24 05:15:47 -08:00
const resource = [ 'expense' ] ;
2020-01-31 05:43:40 -08:00
2020-01-28 07:50:15 -08:00
export const expenseOperations = [
{
displayName : 'Operation' ,
name : 'operation' ,
type : 'options' ,
displayOptions : {
show : {
2020-01-31 05:43:40 -08:00
resource ,
2020-01-28 07:50:15 -08:00
} ,
} ,
options : [
{
name : 'Get' ,
value : 'get' ,
2020-01-28 23:04:52 -08:00
description : 'Get data of an expense' ,
2020-01-28 07:50:15 -08:00
} ,
{
name : 'Get All' ,
value : 'getAll' ,
description : 'Get data of all expenses' ,
} ,
2020-02-03 03:57:39 -08:00
{
name : 'Create' ,
value : 'create' ,
2020-07-24 03:56:41 -07:00
description : ` Create an expense ` ,
2020-02-03 03:57:39 -08:00
} ,
{
name : 'Update' ,
value : 'update' ,
2020-07-24 03:56:41 -07:00
description : ` Update an expense ` ,
2020-02-03 03:57:39 -08:00
} ,
2020-01-31 04:47:20 -08:00
{
name : 'Delete' ,
value : 'delete' ,
description : ` Delete an expense ` ,
} ,
2020-01-28 07:50:15 -08:00
] ,
2020-01-28 23:04:52 -08:00
default : 'getAll' ,
2020-01-28 07:50:15 -08:00
description : 'The operation to perform.' ,
} ,
] as INodeProperties [ ] ;
export const expenseFields = [
2020-11-24 05:15:47 -08:00
/* -------------------------------------------------------------------------- */
/* expense:getAll */
/* -------------------------------------------------------------------------- */
2020-01-28 07:50:15 -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 07:50:15 -08:00
} ,
2020-11-24 05:15:47 -08:00
default : false ,
description : 'Returns a list of your expenses.' ,
2020-01-28 07:50:15 -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 07:50:15 -08:00
} ,
2020-11-24 05:15:47 -08:00
typeOptions : {
minValue : 1 ,
maxValue : 100 ,
2020-01-28 07:50:15 -08:00
} ,
2020-11-24 05:15:47 -08:00
default : 100 ,
description : 'How many results to return.' ,
2020-01-28 07:50:15 -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 : '' ,
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 : false ,
description : 'Pass true to only return time entries that have been invoiced and false to return time entries that have not been invoiced.' ,
} ,
{
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 : 'Project ID' ,
name : 'project_id' ,
type : 'string' ,
default : '' ,
description : 'Only return time entries belonging to the client with the given ID.' ,
} ,
{
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 : 'User ID' ,
name : 'user_id' ,
type : 'string' ,
default : '' ,
description : 'Only return time entries belonging to the user with the given ID.' ,
} ,
] ,
} ,
2020-01-28 07:50:15 -08:00
2020-11-24 05:15:47 -08:00
/* -------------------------------------------------------------------------- */
/* expense:get */
/* -------------------------------------------------------------------------- */
{
displayName : 'Expense Id' ,
name : 'id' ,
type : 'string' ,
default : '' ,
required : true ,
displayOptions : {
show : {
operation : [
'get' ,
] ,
resource ,
} ,
2020-01-28 07:50:15 -08:00
} ,
2020-11-24 05:15:47 -08:00
description : 'The ID of the expense you are retrieving.' ,
2020-01-28 07:50:15 -08:00
} ,
2020-01-31 04:47:20 -08:00
2020-11-24 05:15:47 -08:00
/* -------------------------------------------------------------------------- */
/* expense:delete */
/* -------------------------------------------------------------------------- */
{
displayName : 'Expense Id' ,
name : 'id' ,
type : 'string' ,
default : '' ,
required : true ,
displayOptions : {
show : {
operation : [
'delete' ,
] ,
resource ,
} ,
2020-01-31 04:47:20 -08:00
} ,
2020-11-24 05:15:47 -08:00
description : 'The ID of the expense you want to delete.' ,
2020-01-31 04:47:20 -08:00
} ,
2020-02-03 03:57:39 -08:00
/* -------------------------------------------------------------------------- */
/* expense:create */
/* -------------------------------------------------------------------------- */
{
displayName : 'Project Id' ,
2020-02-07 20:38:13 -08:00
name : 'projectId' ,
2020-02-03 03:57:39 -08:00
type : 'string' ,
displayOptions : {
show : {
operation : [
'create' ,
] ,
resource ,
} ,
} ,
default : '' ,
required : true ,
description : 'The ID of the project associated with this expense.' ,
} ,
{
displayName : 'Expense Category Id' ,
2020-02-07 20:38:13 -08:00
name : 'expenseCategoryId' ,
2020-02-03 03:57:39 -08:00
type : 'string' ,
displayOptions : {
show : {
operation : [
'create' ,
] ,
resource ,
} ,
} ,
default : '' ,
required : true ,
description : 'The ID of the expense category this expense is being tracked against.' ,
} ,
{
displayName : 'Spent Date' ,
2020-02-07 20:38:13 -08:00
name : 'spentDate' ,
2020-02-03 03:57:39 -08:00
type : 'dateTime' ,
displayOptions : {
show : {
operation : [
'create' ,
] ,
resource ,
} ,
} ,
default : '' ,
required : true ,
description : 'Date the expense occurred.' ,
} ,
{
displayName : 'Additional Fields' ,
name : 'additionalFields' ,
type : 'collection' ,
placeholder : 'Add Field' ,
displayOptions : {
show : {
operation : [
'create' ,
] ,
resource ,
} ,
} ,
default : { } ,
options : [
{
2020-02-07 20:38:13 -08:00
displayName : 'Billable' ,
name : 'billable' ,
2020-02-03 03:57:39 -08:00
type : 'boolean' ,
default : true ,
2020-10-22 06:46:03 -07:00
description : 'Whether this expense is billable or not. Defaults to true.' ,
2020-02-03 03:57:39 -08:00
} ,
{
2020-02-07 20:38:13 -08:00
displayName : 'Notes' ,
name : 'notes' ,
2020-02-03 03:57:39 -08:00
type : 'string' ,
default : '' ,
2020-10-22 06:46:03 -07:00
description : 'Notes about the expense.' ,
2020-02-03 03:57:39 -08:00
} ,
{
displayName : 'Total Cost' ,
name : 'total_cost' ,
type : 'string' ,
default : '' ,
2020-10-22 06:46:03 -07:00
description : 'The total amount of the expense.' ,
2020-02-03 03:57:39 -08:00
} ,
{
2020-02-07 20:38:13 -08:00
displayName : 'Units' ,
name : 'units' ,
2020-02-03 03:57:39 -08:00
type : 'string' ,
default : '' ,
2020-10-22 06:46:03 -07:00
description : 'The quantity of units to use in calculating the total_cost of the expense.' ,
2020-02-03 03:57:39 -08:00
} ,
{
2020-02-07 20:38:13 -08:00
displayName : 'User Id' ,
name : 'user_id' ,
type : 'boolean' ,
default : true ,
2020-10-22 06:46:03 -07:00
description : 'The ID of the user associated with this expense. Defaults to the ID of the currently authenticated user.' ,
2020-02-03 03:57:39 -08:00
} ,
] ,
} ,
2020-11-24 05:15:47 -08:00
/* -------------------------------------------------------------------------- */
2020-02-03 03:57:39 -08:00
/* invoice:update */
/* -------------------------------------------------------------------------- */
{
displayName : 'Invoice Id' ,
name : 'id' ,
type : 'string' ,
default : '' ,
required : true ,
displayOptions : {
show : {
operation : [
'update' ,
] ,
resource ,
} ,
} ,
description : 'The ID of the invoice want to update.' ,
} ,
{
displayName : 'Update Fields' ,
name : 'updateFields' ,
type : 'collection' ,
placeholder : 'Add Field' ,
displayOptions : {
show : {
operation : [
'update' ,
] ,
resource ,
} ,
} ,
default : { } ,
options : [
{
2020-02-07 20:38:13 -08:00
displayName : 'Billable' ,
name : 'billable' ,
type : 'boolean' ,
default : true ,
2020-10-22 06:46:03 -07:00
description : 'Whether this expense is billable or not. Defaults to true.' ,
2020-02-03 03:57:39 -08:00
} ,
{
displayName : 'Expense Category Id' ,
name : 'expense_category_id' ,
type : 'string' ,
default : '' ,
description : 'The ID of the expense category this expense is being tracked against.' ,
} ,
{
2020-02-07 20:38:13 -08:00
displayName : 'Notes' ,
name : 'notes' ,
type : 'string' ,
2020-02-03 03:57:39 -08:00
default : '' ,
2020-10-22 06:46:03 -07:00
description : 'Notes about the expense.' ,
2020-02-03 03:57:39 -08:00
} ,
{
2020-02-07 20:38:13 -08:00
displayName : 'Project Id' ,
name : 'project_id' ,
type : 'string' ,
default : '' ,
description : 'The ID of the project associated with this expense.' ,
2020-02-03 03:57:39 -08:00
} ,
{
2020-02-07 20:38:13 -08:00
displayName : 'Spent Date' ,
name : 'spent_date' ,
type : 'dateTime' ,
2020-02-03 03:57:39 -08:00
default : '' ,
2020-02-07 20:38:13 -08:00
description : 'Date the expense occurred.' ,
2020-02-03 03:57:39 -08:00
} ,
{
displayName : 'Total Cost' ,
name : 'total_cost' ,
type : 'string' ,
default : '' ,
2020-10-22 06:46:03 -07:00
description : 'The total amount of the expense.' ,
2020-02-03 03:57:39 -08:00
} ,
{
2020-02-07 20:38:13 -08:00
displayName : 'Units' ,
name : 'units' ,
2020-02-03 03:57:39 -08:00
type : 'string' ,
default : '' ,
2020-10-22 06:46:03 -07:00
description : 'The quantity of units to use in calculating the total_cost of the expense.' ,
2020-02-03 03:57:39 -08:00
} ,
{
2020-02-07 20:38:13 -08:00
displayName : 'User Id' ,
name : 'user_id' ,
type : 'boolean' ,
default : true ,
2020-10-22 06:46:03 -07:00
description : 'The ID of the user associated with this expense. Defaults to the ID of the currently authenticated user.' ,
2020-02-03 03:57:39 -08:00
} ,
] ,
} ,
2020-01-28 07:50:15 -08:00
] as INodeProperties [ ] ;