| POST,OPTIONS | /v1/dispatch/track/{Token}/messages |
|---|
export class CourierTrackActRequest
{
public Token: string;
public ActToken: string;
public constructor(init?: Partial<CourierTrackActRequest>) { (Object as any).assign(this, init); }
}
export class DispatchTrackStepView
{
public Name: string;
public At?: string;
public Done: boolean;
public Current: boolean;
public constructor(init?: Partial<DispatchTrackStepView>) { (Object as any).assign(this, init); }
}
export class CourierTrackBusiness
{
public Name: string;
public Phone: string;
public constructor(init?: Partial<CourierTrackBusiness>) { (Object as any).assign(this, init); }
}
export class CourierTrackDriver
{
public FirstName: string;
public Initial: string;
public Vehicle: string;
public Plate: string;
public EtaMin?: number;
public EtaPct?: number;
public constructor(init?: Partial<CourierTrackDriver>) { (Object as any).assign(this, init); }
}
export class CourierTrackProof
{
public Kind: string;
public PhotoUrl: string;
public AtText: string;
public GpsOk: boolean;
public Units: number;
public DamageNote: string;
public DeliveredTo: string;
public WaitedMin: number;
public Attempts: number;
public ContactedText: string;
public EachTagged: boolean;
public EachScanned: boolean;
public constructor(init?: Partial<CourierTrackProof>) { (Object as any).assign(this, init); }
}
export class CourierTrackRating
{
public Stars: number;
public Tags: string;
public Tip: number;
public TipStatus: string;
public constructor(init?: Partial<CourierTrackRating>) { (Object as any).assign(this, init); }
}
export class CourierTrackSlot
{
public Id: string;
public Day: string;
public DayEs: string;
public Win: string;
public constructor(init?: Partial<CourierTrackSlot>) { (Object as any).assign(this, init); }
}
export class CourierTrackMissed
{
public Code: string;
public Fee: number;
public WaitedMin: number;
public AutoRebook: boolean;
public RebookWindowText: string;
public Slots: CourierTrackSlot[] = [];
public constructor(init?: Partial<CourierTrackMissed>) { (Object as any).assign(this, init); }
}
export class CourierTrackCan
{
public EditInstructions: boolean;
public ChangeUnits: boolean;
public Cancel: boolean;
public RescheduleDelivery: boolean;
public Rebook: boolean;
public Rate: boolean;
public Message: boolean;
public Report: boolean;
public MaxUnits: number;
public constructor(init?: Partial<CourierTrackCan>) { (Object as any).assign(this, init); }
}
export class CourierTrackMessage
{
public Who: string;
public Mine: boolean;
public Office: boolean;
public AtText: string;
public Body: string;
public constructor(init?: Partial<CourierTrackMessage>) { (Object as any).assign(this, init); }
}
export class CourierTrackView
{
public State: string;
public Code: string;
public RunCode: string;
public Shape: string;
public Template: string;
public CourierStep: string;
public UnitOne: string;
public UnitMany: string;
public UnitOneEs: string;
public UnitManyEs: string;
public FacilityNoun: string;
public FacilityNounEs: string;
public Units: number;
public UnitsCounted: boolean;
public Address: string;
public DropoffAddress: string;
public DropoffName: string;
public Instructions: string;
public GateCode: string;
public Handoff: string;
public LevelName: string;
public ReadyPromise: string;
public WindowText: string;
public IsAsap: boolean;
public Times: { [index:string]: string; } = {};
public StopPosition?: number;
public StopCount?: number;
public DeliveryWindowText: string;
public Driver: CourierTrackDriver;
public Proof: CourierTrackProof;
public HandoffCode: string;
public Rating: CourierTrackRating;
public TipAllowed: boolean;
public TipsPct: number;
public Missed: CourierTrackMissed;
public CancelFee: number;
public CancelFeeCharged: number;
public CancelledBy: string;
public BookUrl: string;
public Can: CourierTrackCan;
public DeliverySlots: CourierTrackSlot[] = [];
public Messages: CourierTrackMessage[] = [];
public MessagesOpen: boolean;
public CaseCode: string;
public CaseStatus: string;
public CaseReply: string;
public ThreadHrs: number;
public ExpiresUtc?: string;
public LiveEta: boolean;
public Live: boolean;
public ServerUtc: string;
public constructor(init?: Partial<CourierTrackView>) { (Object as any).assign(this, init); }
}
export class DispatchTrackResponse
{
public Kind: string;
public Code: string;
public What: string;
public FromLoc: string;
public ToLoc: string;
public Bags?: number;
public Fare?: number;
public PayMode: string;
public CardLast4: string;
public Charged: boolean;
public Stage: string;
public Headline: string;
public Sub: string;
public IsClosed: boolean;
public Eta: string;
public DriverName: string;
public CustomerName: string;
public Steps: DispatchTrackStepView[] = [];
public Expired: boolean;
public Invalid: boolean;
public Business: CourierTrackBusiness;
public Courier: CourierTrackView;
public Notice: string;
public ResponseStatus: ResponseStatus;
public constructor(init?: Partial<DispatchTrackResponse>) { (Object as any).assign(this, init); }
}
export class CourierTrackMessageRequest extends CourierTrackActRequest
{
public Text: string;
public constructor(init?: Partial<CourierTrackMessageRequest>) { super(init); (Object as any).assign(this, init); }
}
TypeScript CourierTrackMessageRequest DTOs
To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /v1/dispatch/track/{Token}/messages HTTP/1.1
Host: api.dev.dynamics.trendsic.com
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length
{
Text: String,
Token: String,
ActToken: String
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length
{
Kind: String,
Code: String,
What: String,
FromLoc: String,
ToLoc: String,
Bags: 0,
Fare: 0,
PayMode: String,
CardLast4: String,
Charged: False,
Stage: String,
Headline: String,
Sub: String,
IsClosed: False,
Eta: String,
DriverName: String,
CustomerName: String,
Steps:
[
{
Name: String,
At: 0001-01-01,
Done: False,
Current: False
}
],
Expired: False,
Invalid: False,
Business:
{
Name: String,
Phone: String
},
Courier:
{
State: String,
Code: String,
RunCode: String,
Shape: String,
Template: String,
CourierStep: String,
UnitOne: String,
UnitMany: String,
UnitOneEs: String,
UnitManyEs: String,
FacilityNoun: String,
FacilityNounEs: String,
Units: 0,
UnitsCounted: False,
Address: String,
DropoffAddress: String,
DropoffName: String,
Instructions: String,
GateCode: String,
Handoff: String,
LevelName: String,
ReadyPromise: String,
WindowText: String,
IsAsap: False,
Times:
{
String: String
},
StopPosition: 0,
StopCount: 0,
DeliveryWindowText: String,
Driver:
{
FirstName: String,
Initial: String,
Vehicle: String,
Plate: String,
EtaMin: 0,
EtaPct: 0
},
Proof:
{
Kind: String,
PhotoUrl: String,
AtText: String,
GpsOk: False,
Units: 0,
DamageNote: String,
DeliveredTo: String,
WaitedMin: 0,
Attempts: 0,
ContactedText: String,
EachTagged: False,
EachScanned: False
},
HandoffCode: String,
Rating:
{
Stars: 0,
Tags: String,
Tip: 0,
TipStatus: String
},
TipAllowed: False,
TipsPct: 0,
Missed:
{
Code: String,
Fee: 0,
WaitedMin: 0,
AutoRebook: False,
RebookWindowText: String,
Slots:
[
{
Id: String,
Day: String,
DayEs: String,
Win: String
}
]
},
CancelFee: 0,
CancelFeeCharged: 0,
CancelledBy: String,
BookUrl: String,
Can:
{
EditInstructions: False,
ChangeUnits: False,
Cancel: False,
RescheduleDelivery: False,
Rebook: False,
Rate: False,
Message: False,
Report: False,
MaxUnits: 0
},
DeliverySlots:
[
{
Id: String,
Day: String,
DayEs: String,
Win: String
}
],
Messages:
[
{
Who: String,
Mine: False,
Office: False,
AtText: String,
Body: String
}
],
MessagesOpen: False,
CaseCode: String,
CaseStatus: String,
CaseReply: String,
ThreadHrs: 0,
ExpiresUtc: 0001-01-01,
LiveEta: False,
Live: False,
ServerUtc: 0001-01-01
},
Notice: String,
ResponseStatus:
{
ErrorCode: String,
Message: String,
StackTrace: String,
Errors:
[
{
ErrorCode: String,
FieldName: String,
Message: String,
Meta:
{
String: String
}
}
],
Meta:
{
String: String
}
}
}