:sparkles: Add Onfleet Node & Trigger (#2845)
* feat: added Onfleet nodes
Added Onfleet nodes for working with different endpoints like:
organizations, administrators, workers, hubs, teams, destinations, recipients,
containers and webhooks.
* style: fixed typos, arrays uniformity, unnecesary files
* refactor: changed add to create in comments and labels
* feat: added name field to onfleet trigger node
* feat: added team endpoints to onfleet node
Added team auto-dispatch and driver time estimate endpoints to Onfleet
node
* style: remove dots in descriptions and fixed some typos
* feat: added fixes according to comments made on the n8n PR
added new fixed collections, refactored the code according to comments
made on the n8n pr
* fix: fixed recipient and destination cretion
* docs: added docstrings for format some functions
added docstrings for new functions addded for formatting the destination
and recipient objects
* style: formatting the code according to n8n nodelinter
* fix: typos and better descriptions
* [INT-510] n8n: Address additional problems from n8n code review (#5)
* Fixed some error creating a worker, moving some fields under additional fields collection
* Fixed returned values for delete operations, making some changes for style code
* Added operational error since required property is not working for dateTime fields
* :zap: Improvements to #2593
* :zap: Improvements
* :bug: Fix issue with wrong interface
* :zap: Improvements
* :zap: Improvements
* :zap: Minor improvement
Co-authored-by: Santiago Botero Ruiz <santiago.botero@devsavant.ai>
Co-authored-by: ilsemaj <james.li.upenn@gmail.com>
Co-authored-by: Santiago Botero Ruiz <39206812+YokySantiago@users.noreply.github.com>
Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>
2022-02-28 00:48:17 -08:00
import {
INodeProperties
} from 'n8n-workflow' ;
export const teamOperations : INodeProperties [ ] = [
{
displayName : 'Operation' ,
name : 'operation' ,
type : 'options' ,
2022-05-20 14:47:24 -07:00
noDataExpression : true ,
:sparkles: Add Onfleet Node & Trigger (#2845)
* feat: added Onfleet nodes
Added Onfleet nodes for working with different endpoints like:
organizations, administrators, workers, hubs, teams, destinations, recipients,
containers and webhooks.
* style: fixed typos, arrays uniformity, unnecesary files
* refactor: changed add to create in comments and labels
* feat: added name field to onfleet trigger node
* feat: added team endpoints to onfleet node
Added team auto-dispatch and driver time estimate endpoints to Onfleet
node
* style: remove dots in descriptions and fixed some typos
* feat: added fixes according to comments made on the n8n PR
added new fixed collections, refactored the code according to comments
made on the n8n pr
* fix: fixed recipient and destination cretion
* docs: added docstrings for format some functions
added docstrings for new functions addded for formatting the destination
and recipient objects
* style: formatting the code according to n8n nodelinter
* fix: typos and better descriptions
* [INT-510] n8n: Address additional problems from n8n code review (#5)
* Fixed some error creating a worker, moving some fields under additional fields collection
* Fixed returned values for delete operations, making some changes for style code
* Added operational error since required property is not working for dateTime fields
* :zap: Improvements to #2593
* :zap: Improvements
* :bug: Fix issue with wrong interface
* :zap: Improvements
* :zap: Improvements
* :zap: Minor improvement
Co-authored-by: Santiago Botero Ruiz <santiago.botero@devsavant.ai>
Co-authored-by: ilsemaj <james.li.upenn@gmail.com>
Co-authored-by: Santiago Botero Ruiz <39206812+YokySantiago@users.noreply.github.com>
Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>
2022-02-28 00:48:17 -08:00
displayOptions : {
show : {
resource : [
'team' ,
] ,
} ,
} ,
options : [
{
name : 'Auto-Dispatch' ,
value : 'autoDispatch' ,
description : 'Automatically dispatch tasks assigned to a team to on-duty drivers' ,
} ,
{
name : 'Create' ,
value : 'create' ,
description : 'Create a new Onfleet team' ,
} ,
{
name : 'Delete' ,
value : 'delete' ,
description : 'Delete an Onfleet team' ,
} ,
{
name : 'Get' ,
value : 'get' ,
description : 'Get a specific Onfleet team' ,
} ,
{
name : 'Get All' ,
value : 'getAll' ,
description : 'Get all Onfleet teams' ,
} ,
{
name : 'Get Time Estimates' ,
value : 'getTimeEstimates' ,
description : 'Get estimated times for upcoming tasks for a team, returns a selected driver' ,
} ,
{
name : 'Update' ,
value : 'update' ,
description : 'Update an Onfleet team' ,
} ,
] ,
default : 'getAll' ,
} ,
] ;
const nameField = {
displayName : 'Name' ,
name : 'name' ,
type : 'string' ,
default : '' ,
description : 'A unique name for the team' ,
} as INodeProperties ;
const workersField = {
displayName : 'Workers Names/IDs' ,
name : 'workers' ,
type : 'multiOptions' ,
typeOptions : {
loadOptionsMethod : 'getWorkers' ,
} ,
default : [ ] ,
description : 'A list of workers' ,
} as INodeProperties ;
const managersField = {
displayName : 'Administrators Names/IDs' ,
name : 'managers' ,
type : 'multiOptions' ,
typeOptions : {
loadOptionsMethod : 'getAdmins' ,
} ,
default : [ ] ,
description : 'A list of managing administrators' ,
} as INodeProperties ;
const hubField = {
2022-06-03 10:23:49 -07:00
displayName : 'Hub Name or ID' ,
:sparkles: Add Onfleet Node & Trigger (#2845)
* feat: added Onfleet nodes
Added Onfleet nodes for working with different endpoints like:
organizations, administrators, workers, hubs, teams, destinations, recipients,
containers and webhooks.
* style: fixed typos, arrays uniformity, unnecesary files
* refactor: changed add to create in comments and labels
* feat: added name field to onfleet trigger node
* feat: added team endpoints to onfleet node
Added team auto-dispatch and driver time estimate endpoints to Onfleet
node
* style: remove dots in descriptions and fixed some typos
* feat: added fixes according to comments made on the n8n PR
added new fixed collections, refactored the code according to comments
made on the n8n pr
* fix: fixed recipient and destination cretion
* docs: added docstrings for format some functions
added docstrings for new functions addded for formatting the destination
and recipient objects
* style: formatting the code according to n8n nodelinter
* fix: typos and better descriptions
* [INT-510] n8n: Address additional problems from n8n code review (#5)
* Fixed some error creating a worker, moving some fields under additional fields collection
* Fixed returned values for delete operations, making some changes for style code
* Added operational error since required property is not working for dateTime fields
* :zap: Improvements to #2593
* :zap: Improvements
* :bug: Fix issue with wrong interface
* :zap: Improvements
* :zap: Improvements
* :zap: Minor improvement
Co-authored-by: Santiago Botero Ruiz <santiago.botero@devsavant.ai>
Co-authored-by: ilsemaj <james.li.upenn@gmail.com>
Co-authored-by: Santiago Botero Ruiz <39206812+YokySantiago@users.noreply.github.com>
Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>
2022-02-28 00:48:17 -08:00
name : 'hub' ,
type : 'options' ,
typeOptions : {
loadOptionsMethod : 'getHubs' ,
} ,
default : '' ,
2022-06-03 10:23:49 -07:00
description : 'The team\'s hub. Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/nodes/expressions.html#expressions">expression</a>.' ,
:sparkles: Add Onfleet Node & Trigger (#2845)
* feat: added Onfleet nodes
Added Onfleet nodes for working with different endpoints like:
organizations, administrators, workers, hubs, teams, destinations, recipients,
containers and webhooks.
* style: fixed typos, arrays uniformity, unnecesary files
* refactor: changed add to create in comments and labels
* feat: added name field to onfleet trigger node
* feat: added team endpoints to onfleet node
Added team auto-dispatch and driver time estimate endpoints to Onfleet
node
* style: remove dots in descriptions and fixed some typos
* feat: added fixes according to comments made on the n8n PR
added new fixed collections, refactored the code according to comments
made on the n8n pr
* fix: fixed recipient and destination cretion
* docs: added docstrings for format some functions
added docstrings for new functions addded for formatting the destination
and recipient objects
* style: formatting the code according to n8n nodelinter
* fix: typos and better descriptions
* [INT-510] n8n: Address additional problems from n8n code review (#5)
* Fixed some error creating a worker, moving some fields under additional fields collection
* Fixed returned values for delete operations, making some changes for style code
* Added operational error since required property is not working for dateTime fields
* :zap: Improvements to #2593
* :zap: Improvements
* :bug: Fix issue with wrong interface
* :zap: Improvements
* :zap: Improvements
* :zap: Minor improvement
Co-authored-by: Santiago Botero Ruiz <santiago.botero@devsavant.ai>
Co-authored-by: ilsemaj <james.li.upenn@gmail.com>
Co-authored-by: Santiago Botero Ruiz <39206812+YokySantiago@users.noreply.github.com>
Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>
2022-02-28 00:48:17 -08:00
} as INodeProperties ;
const enableSelfAssignmentField = {
displayName : 'Self Assignment' ,
name : 'enableSelfAssignment' ,
type : 'boolean' ,
default : false ,
description : 'Whether or not to allow drivers to self-assign tasks that are in the Team\'s unassigned container' ,
} as INodeProperties ;
const maxTasksPerRouteField = {
displayName : 'Max Number Of Tasks Per Route' ,
name : 'maxTasksPerRoute' ,
type : 'number' ,
default : 100 ,
typeOptions : {
maxValue : 200 ,
minValue : 1 ,
} ,
description : 'Total number of tasks allowed on a route' ,
} as INodeProperties ;
const serviceTimeField = {
displayName : 'Service Time' ,
name : 'serviceTime' ,
type : 'number' ,
default : 2 ,
typeOptions : {
minValue : 0 ,
} ,
description : 'The default service time to apply in Minutes to the tasks when no task service time exists' ,
} as INodeProperties ;
const routeEndField = {
displayName : 'Route End' ,
name : 'routeEnd' ,
type : 'options' ,
options : [
{
name : 'Team’ s Hub' ,
value : 'team_hub' ,
} ,
{
name : 'Worker Routing Address' ,
value : 'worker_routing_address' ,
} ,
{
name : 'Hub' ,
value : 'hub' ,
} ,
{
name : 'End Anywhere' ,
value : 'anywhere' ,
} ,
] ,
default : '' ,
description : 'Where the route will end' ,
} as INodeProperties ;
const maxAllowedDelayField = {
displayName : 'Max Allowed Delay' ,
name : 'maxAllowedDelay' ,
type : 'number' ,
default : 10 ,
description : 'Max allowed time in minutes that a task can be late' ,
typeOptions : {
minValue : 1 ,
} ,
} as INodeProperties ;
const longitudeDropOffField = {
displayName : 'Drop Off Longitude' ,
name : 'dropOffLongitude' ,
type : 'number' ,
typeOptions : {
numberPrecision : 14 ,
} ,
default : 0 ,
description : 'The longitude for drop off location' ,
} as INodeProperties ;
const latitudeDropOffField = {
displayName : 'Drop Off Latitude' ,
name : 'dropOffLatitude' ,
type : 'number' ,
typeOptions : {
numberPrecision : 14 ,
} ,
default : 0 ,
description : 'The latitude for drop off location' ,
} as INodeProperties ;
const longitudePickupField = {
displayName : 'Pick Up Longitude' ,
name : 'pickupLongitude' ,
type : 'number' ,
typeOptions : {
numberPrecision : 14 ,
} ,
default : 0 ,
description : 'The longitude for pickup location' ,
} as INodeProperties ;
const latitudePickupField = {
displayName : 'Pick Up Latitude' ,
name : 'pickupLatitude' ,
type : 'number' ,
typeOptions : {
numberPrecision : 14 ,
} ,
default : 0 ,
description : 'The latitude for pickup location' ,
} as INodeProperties ;
const pickupTimeField = {
displayName : 'Pick Up Time' ,
name : 'pickupTime' ,
type : 'dateTime' ,
default : '' ,
description : 'If the request includes pickupLocation, pickupTime must be present if the time is fewer than 3 hours in the future' ,
} as INodeProperties ;
const restrictedVehicleTypesField = {
displayName : 'Restricted Vehicle Types' ,
name : 'restrictedVehicleTypes' ,
type : 'options' ,
options : [
{
name : 'Car' ,
value : 'CAR' ,
} ,
{
name : 'Motorcycle' ,
value : 'MOTORCYCLE' ,
} ,
{
name : 'Bicycle' ,
value : 'BICYCLE' ,
} ,
{
name : 'Truck' ,
value : 'TRUCK' ,
} ,
] ,
default : 'CAR' ,
description : 'Vehicle types to ignore in the query' ,
} as INodeProperties ;
const serviceTimeEstimateField = {
displayName : 'Service Time' ,
name : 'serviceTime' ,
type : 'number' ,
default : 120 ,
typeOptions : {
minValue : 0 ,
} ,
description : 'The expected time a worker will take at the pickupLocation, dropoffLocation, or both (as applicable) Unit: seconds' ,
} as INodeProperties ;
export const teamFields : INodeProperties [ ] = [
{
displayName : 'Team ID' ,
name : 'id' ,
type : 'string' ,
displayOptions : {
show : {
resource : [
'team' ,
] ,
operation : [
'get' ,
'update' ,
'delete' ,
'getTimeEstimates' ,
'autoDispatch' ,
] ,
} ,
} ,
default : '' ,
required : true ,
description : 'The ID of the team object for lookup' ,
} ,
{
. . . nameField ,
displayOptions : {
show : {
resource : [
'team' ,
] ,
operation : [
'create' ,
] ,
} ,
} ,
required : true ,
} ,
{
. . . workersField ,
displayOptions : {
show : {
resource : [
'team' ,
] ,
operation : [
'create' ,
] ,
} ,
} ,
required : true ,
} ,
{
. . . managersField ,
displayOptions : {
show : {
resource : [
'team' ,
] ,
operation : [
'create' ,
] ,
} ,
} ,
required : true ,
} ,
{
displayName : 'Additional Fields' ,
name : 'additionalFields' ,
type : 'collection' ,
placeholder : 'Add Field' ,
default : { } ,
displayOptions : {
show : {
resource : [
'team' ,
] ,
operation : [
'create' ,
] ,
} ,
} ,
options : [
hubField ,
enableSelfAssignmentField ,
] ,
} ,
{
displayName : 'Return All' ,
name : 'returnAll' ,
type : 'boolean' ,
displayOptions : {
show : {
resource : [
'team' ,
] ,
operation : [
'getAll' ,
] ,
} ,
} ,
default : false ,
2022-05-06 14:01:25 -07:00
description : 'Whether to return all results or only up to a given limit' ,
:sparkles: Add Onfleet Node & Trigger (#2845)
* feat: added Onfleet nodes
Added Onfleet nodes for working with different endpoints like:
organizations, administrators, workers, hubs, teams, destinations, recipients,
containers and webhooks.
* style: fixed typos, arrays uniformity, unnecesary files
* refactor: changed add to create in comments and labels
* feat: added name field to onfleet trigger node
* feat: added team endpoints to onfleet node
Added team auto-dispatch and driver time estimate endpoints to Onfleet
node
* style: remove dots in descriptions and fixed some typos
* feat: added fixes according to comments made on the n8n PR
added new fixed collections, refactored the code according to comments
made on the n8n pr
* fix: fixed recipient and destination cretion
* docs: added docstrings for format some functions
added docstrings for new functions addded for formatting the destination
and recipient objects
* style: formatting the code according to n8n nodelinter
* fix: typos and better descriptions
* [INT-510] n8n: Address additional problems from n8n code review (#5)
* Fixed some error creating a worker, moving some fields under additional fields collection
* Fixed returned values for delete operations, making some changes for style code
* Added operational error since required property is not working for dateTime fields
* :zap: Improvements to #2593
* :zap: Improvements
* :bug: Fix issue with wrong interface
* :zap: Improvements
* :zap: Improvements
* :zap: Minor improvement
Co-authored-by: Santiago Botero Ruiz <santiago.botero@devsavant.ai>
Co-authored-by: ilsemaj <james.li.upenn@gmail.com>
Co-authored-by: Santiago Botero Ruiz <39206812+YokySantiago@users.noreply.github.com>
Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>
2022-02-28 00:48:17 -08:00
} ,
{
displayName : 'Limit' ,
name : 'limit' ,
type : 'number' ,
displayOptions : {
show : {
resource : [
'team' ,
] ,
operation : [
'getAll' ,
] ,
returnAll : [
false ,
] ,
} ,
} ,
typeOptions : {
minValue : 1 ,
maxValue : 64 ,
} ,
default : 64 ,
2022-05-06 14:01:25 -07:00
description : 'Max number of results to return' ,
:sparkles: Add Onfleet Node & Trigger (#2845)
* feat: added Onfleet nodes
Added Onfleet nodes for working with different endpoints like:
organizations, administrators, workers, hubs, teams, destinations, recipients,
containers and webhooks.
* style: fixed typos, arrays uniformity, unnecesary files
* refactor: changed add to create in comments and labels
* feat: added name field to onfleet trigger node
* feat: added team endpoints to onfleet node
Added team auto-dispatch and driver time estimate endpoints to Onfleet
node
* style: remove dots in descriptions and fixed some typos
* feat: added fixes according to comments made on the n8n PR
added new fixed collections, refactored the code according to comments
made on the n8n pr
* fix: fixed recipient and destination cretion
* docs: added docstrings for format some functions
added docstrings for new functions addded for formatting the destination
and recipient objects
* style: formatting the code according to n8n nodelinter
* fix: typos and better descriptions
* [INT-510] n8n: Address additional problems from n8n code review (#5)
* Fixed some error creating a worker, moving some fields under additional fields collection
* Fixed returned values for delete operations, making some changes for style code
* Added operational error since required property is not working for dateTime fields
* :zap: Improvements to #2593
* :zap: Improvements
* :bug: Fix issue with wrong interface
* :zap: Improvements
* :zap: Improvements
* :zap: Minor improvement
Co-authored-by: Santiago Botero Ruiz <santiago.botero@devsavant.ai>
Co-authored-by: ilsemaj <james.li.upenn@gmail.com>
Co-authored-by: Santiago Botero Ruiz <39206812+YokySantiago@users.noreply.github.com>
Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>
2022-02-28 00:48:17 -08:00
} ,
{
displayName : 'Update Fields' ,
name : 'updateFields' ,
type : 'collection' ,
placeholder : 'Add Field' ,
default : { } ,
displayOptions : {
show : {
resource : [
'team' ,
] ,
operation : [
'update' ,
] ,
} ,
} ,
options : [
managersField ,
hubField ,
nameField ,
enableSelfAssignmentField ,
workersField ,
] ,
} ,
{
displayName : 'Additional Fields' ,
name : 'additionalFields' ,
type : 'collection' ,
placeholder : 'Add Field' ,
default : { } ,
displayOptions : {
show : {
resource : [
'team' ,
] ,
operation : [
'autoDispatch' ,
] ,
} ,
} ,
options : [
{
displayName : 'Ending Route' ,
name : 'endingRoute' ,
type : 'fixedCollection' ,
placeholder : 'Add Route' ,
default : { } ,
options : [
{
displayName : 'Ending Route Properties' ,
name : 'endingRouteProperties' ,
type : 'fixedCollection' ,
default : { } ,
values : [
{
. . . routeEndField ,
required : true ,
} ,
{
. . . hubField ,
displayOptions : {
show : {
routeEnd : [
'hub' ,
] ,
} ,
} ,
required : false ,
} ,
] ,
} ,
] ,
} ,
maxAllowedDelayField ,
maxTasksPerRouteField ,
{
displayName : 'Schedule Time Window' ,
name : 'scheduleTimeWindow' ,
type : 'fixedCollection' ,
placeholder : 'Add Time Window' ,
default : { } ,
options : [
{
displayName : 'Schedule Time Window Properties' ,
name : 'scheduleTimeWindowProperties' ,
type : 'fixedCollection' ,
default : { } ,
values : [
{
displayName : 'Start Time' ,
name : 'startTime' ,
type : 'dateTime' ,
default : '' ,
} ,
{
displayName : 'End Time' ,
name : 'endTime' ,
type : 'dateTime' ,
default : '' ,
} ,
] ,
} ,
] ,
} ,
serviceTimeField ,
{
displayName : 'Task Time Window' ,
name : 'taskTimeWindow' ,
type : 'fixedCollection' ,
placeholder : 'Add Time Window' ,
default : { } ,
options : [
{
displayName : 'Task Time Window Properties' ,
name : 'taskTimeWindowProperties' ,
type : 'fixedCollection' ,
default : { } ,
values : [
{
displayName : 'Start Time' ,
name : 'startTime' ,
type : 'dateTime' ,
default : '' ,
} ,
{
displayName : 'End Time' ,
name : 'endTime' ,
type : 'dateTime' ,
default : '' ,
} ,
] ,
} ,
] ,
} ,
] ,
} ,
{
displayName : 'Filters' ,
name : 'filters' ,
type : 'collection' ,
placeholder : 'Add Field' ,
default : { } ,
displayOptions : {
show : {
resource : [
'team' ,
] ,
operation : [
'getTimeEstimates' ,
] ,
} ,
} ,
options : [
{
displayName : 'Drop Off' ,
name : 'dropOff' ,
type : 'fixedCollection' ,
placeholder : 'Add Drop Off' ,
default : { } ,
options : [
{
displayName : 'DropOff Properties' ,
name : 'dropOffProperties' ,
type : 'fixedCollection' ,
default : { } ,
values : [
{
. . . longitudeDropOffField ,
required : true ,
} ,
{
. . . latitudeDropOffField ,
required : true ,
} ,
] ,
} ,
] ,
} ,
{
displayName : 'Pick Up' ,
name : 'pickUp' ,
type : 'fixedCollection' ,
default : { } ,
placeholder : 'Add Pick Up' ,
options : [
{
displayName : 'Pick Up Properties' ,
name : 'pickUpProperties' ,
type : 'fixedCollection' ,
default : { } ,
values : [
{
. . . longitudePickupField ,
required : true ,
} ,
{
. . . latitudePickupField ,
required : true ,
} ,
{
. . . pickupTimeField ,
required : false ,
} ,
] ,
} ,
] ,
} ,
{
. . . restrictedVehicleTypesField ,
required : false ,
} ,
{
. . . serviceTimeEstimateField ,
required : false ,
} ,
] ,
} ,
] ;