n8n/packages/nodes-base/nodes/Onfleet/interfaces.ts

185 lines
3.6 KiB
TypeScript
Raw Normal View History

: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
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;
}