n8n/packages/nodes-base/nodes/Onfleet/interfaces.ts
Ricardo Espinoza 401e626a64
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

*  Improvements to #2593

*  Improvements

* 🐛 Fix issue with wrong interface

*  Improvements

*  Improvements

*  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 09:48:17 +01:00

185 lines
3.6 KiB
TypeScript

export interface OnfleetRecipient {
name?: string;
phone?: string;
notes?: string;
skipSMSNotifications?: boolean;
skipPhoneNumberValidation?: boolean;
}
export interface OnfleetDestinationAddress {
name?: string;
number?: string;
street?: string;
apartment?: string;
city?: string;
state?: string;
postalCode?: string;
country?: string;
unparsed?: string;
}
export interface OnfleetDestinationOptions {
language?: string;
}
export interface OnfleetDestination {
address: OnfleetDestinationAddress;
location?: [number, number];
notes?: string;
options?: OnfleetDestinationOptions;
}
export interface OnfleetTask {
merchant?: string;
executor?: string;
destination: OnfleetDestination;
recipients: OnfleetRecipient[];
completeAfter?: number;
completeBefore?: number;
pickupTask?: boolean;
notes?: string;
quantity?: number;
serviceTime?: number;
}
export interface OnfleetTaskUpdate {
merchant?: string;
executor?: string;
completeAfter?: number;
completeBefore?: number;
pickupTask?: boolean;
notes?: string;
quantity?: number;
serviceTime?: number;
}
export interface OnfleetListTaskFilters {
from?: number;
to?: number;
lastId?: string;
state?: string;
worker?: string;
completeBeforeBefore?: number;
completeAfterAfter?: number;
dependencies?: string;
}
export interface OnfleetCloneOverrideTaskOptions {
completeAfter?: number;
completeBefore?: number;
destination?: OnfleetDestination;
notes?: string;
pickupTask?: boolean;
recipients?: OnfleetRecipient[];
serviceTime?: number;
}
export interface OnfleetCloneTaskOptions {
includeMetadata?: boolean;
includeBarcodes?: boolean;
includeDependencies?: boolean;
overrides?: OnfleetCloneOverrideTaskOptions;
}
export interface OnfleetCloneTask {
options?: OnfleetCloneTaskOptions;
}
export interface OnfleetTaskCompletionDetails {
success: boolean;
notes?: string;
}
export interface OnfleetTaskComplete {
completionDetails: OnfleetTaskCompletionDetails;
}
export interface OnfleetAdmins {
name?: string;
email?: string;
phone?: string;
isReadOnly?: boolean;
}
export interface OnfleetHubs extends OnfleetDestination {
name?: string;
teams?: string[];
}
export interface OnfleetVehicle {
type?: string;
description?: string;
licensePlate?: string;
color?: string;
}
export interface OnfleetWorker {
name?: string;
phone?: string;
vehicle?: OnfleetVehicle;
teams?: string[];
capacity?: number;
displayName?: string;
}
export interface OnfleetWorkerFilter {
[key: string]: string | undefined;
filter?: string;
teams?: string;
states?: string;
phones?: string;
analytics?: string;
}
export interface OnfleetWorkerScheduleEntry {
date?: string;
timezone?: string;
shifts?: [[number, number]];
}
export interface OnfleetWebhook {
url?: string;
name?: string;
trigger?: number;
threshold?: number;
}
export interface OnfleetTeams {
name?: string;
workers?: string[];
managers?: string[];
hub?: string;
enableSelfAssignment?: boolean;
}
export interface OnfleetWorkerSchedule {
entries: OnfleetWorkerScheduleEntry[];
}
export interface OnfleetWebhookMapping {
key: number;
name: string;
value: string;
}
export interface OnfleetWebhooksMapping {
[key: string]: OnfleetWebhookMapping;
}
export interface OnfleetWorkerEstimates {
dropoffLocation?: string;
pickupLocation?: string;
pickupTime?: number;
restrictedVehicleTypes?: string;
serviceTime?: number;
}
export interface OnfleetTeamAutoDispatch {
maxTasksPerRoute?: number;
taskTimeWindow?: [number, number];
scheduleTimeWindow?: [number, number];
serviceTime?: number;
routeEnd?: string;
maxAllowedDelay?: number;
}