| POST | /v1/c/app/orders/{Code}/track |
|---|
import Foundation
import ServiceStack
public class CustomerAppTrackRequest : CustomerAppSessionRequest
{
public var code:String
required public init(){ super.init() }
private enum CodingKeys : String, CodingKey {
case code
}
required public init(from decoder: Decoder) throws {
try super.init(from: decoder)
let container = try decoder.container(keyedBy: CodingKeys.self)
code = try container.decodeIfPresent(String.self, forKey: .code)
}
public override func encode(to encoder: Encoder) throws {
try super.encode(to: encoder)
var container = encoder.container(keyedBy: CodingKeys.self)
if code != nil { try container.encode(code, forKey: .code) }
}
}
public class CustomerAppSessionRequest : Codable
{
public var slug:String
public var profile:String
required public init(){}
}
public class CustomerAppResponse : Codable
{
public var boot:CustomerAppBoot
public var customer:CustomerAppMe
public var addresses:[CustomerAppAddress] = []
public var cards:[CustomerAppCard] = []
public var notif:CustomerAppNotif
public var recurring:[CustomerAppRecurrence] = []
public var booked:CourierBookOrderResponse
public var sent:Bool
public var token:String
public var needsName:Bool
public var name:String
public var url:String
public var clientSecret:String
public var publishableKey:String
public var message:String
public var reopenStep:String
public var customers:[CourierCustomerRow] = []
public var run:RunResult
public var responseStatus:ResponseStatus
required public init(){}
}
public class CustomerAppBoot : Codable
{
public var profile:String
public var available:Bool
public var reason:String
public var authMethod:String
public var slug:String
public var page:CourierBookPageView
public var manifestUrl:String
required public init(){}
}
public class CourierBookPageView : Codable
{
public var available:Bool
public var bookingOn:Bool
public var business:CourierTrackBusiness
public var profile:CourierBookProfile
public var profiles:[CourierBookProfileLink] = []
public var cardEnabled:Bool
public var publishableKey:String
public var appUrl:String
public var today:String
public var weekday:Int
public var nowMin:Int
required public init(){}
}
public class CourierTrackBusiness : Codable
{
public var name:String
public var phone:String
required public init(){}
}
public class CourierBookProfile : Codable
{
public var code:String
public var name:String
public var shape:String
public var template:String
public var unitOne:String
public var unitMany:String
public var unitOneEs:String
public var unitManyEs:String
public var facilityNoun:String
public var facilityNounEs:String
public var facilityName:String
public var levels:[CourierBookLevel] = []
public var asap:Bool
public var recurring:Bool
public var payTiming:String
public var finalAfterCount:Bool
public var cancelFee:Double
public var missedFee:Double
public var missedWaitMin:Int
public var serviceArea:[String] = []
public var zips:[String] = []
public var handoffs:HandoffOptions
required public init(){}
}
public class CourierBookLevel : Codable
{
public var code:String
public var name:String
public var ready:String
public var withinMin:Int
public var inBy:String
public var surcharge:Double
public var days:[Int] = []
public var deadlineMin:Int?
required public init(){}
}
public class HandoffOptions : Codable
{
public var hand:Bool
public var porch:Bool
public var desk:Bool
public var sigRequired:Bool
public var idRequired:Bool
public var codeRequired:Bool
required public init(){}
}
public class CourierBookProfileLink : Codable
{
public var code:String
public var name:String
public var shape:String
required public init(){}
}
public class CustomerAppMe : Codable
{
public var contactId:Int
public var firstName:String
public var lastName:String
public var name:String
public var phone:String
public var needsName:Bool
public var billingMode:String
public var accountCode:String
public var addresses:[CustomerAppAddress] = []
public var cards:[CustomerAppCard] = []
public var notif:CustomerAppNotif
public var orders:[CustomerAppOrder] = []
public var recurring:[CustomerAppRecurrence] = []
public var invoices:[CustomerAppInvoice] = []
public var today:String
public var nowMin:Int
required public init(){}
}
public class CustomerAppAddress : Codable
{
public var id:Int
public var label:String
public var street:String
public var unit:String
public var city:String
public var zip:String
public var lat:Double?
public var lng:Double?
public var inArea:Bool
required public init(){}
}
public class CustomerAppCard : Codable
{
public var id:Int
public var label:String
public var brand:String
public var last4:String
public var isDefault:Bool
required public init(){}
}
public class CustomerAppNotif : Codable
{
public var texts:Bool
public var push:Bool
public var promos:Bool
required public init(){}
}
public class CustomerAppOrder : Codable
{
public var id:Int
public var code:String
public var status:String
public var state:String
public var active:Bool
public var levelCode:String
public var levelName:String
public var units:Int
public var unitsFound:Int?
public var address:String
public var unit:String
public var zip:String
public var dropAddress:String
public var recipientName:String
public var handoff:String
public var isAsap:Bool
public var dayIx:Int
public var dateText:String
public var startMin:Int?
public var endMin:Int?
public var driverFirstName:String
public var etaMin:Int?
public var promise:String
public var payMode:String
public var amount:Double
public var charged:Double?
public var tip:Double?
public var cardLast4:String
public var recurrenceId:Int?
public var steps:[CustomerAppStep] = []
required public init(){}
}
public class CustomerAppStep : Codable
{
public var key:String
public var done:Bool
public var time:String
required public init(){}
}
public class CustomerAppRecurrence : Codable
{
public var id:Int
public var weekday:Int
public var startMin:Int
public var endMin:Int
public var cadence:String
public var levelCode:String
public var units:Int
public var handoff:String
public var address:String
public var paused:Bool
public var payMode:String
public var cardLast4:String
public var nextDate:String
public var skippedDate:String
public var aheadDays:Int
required public init(){}
}
public class CustomerAppInvoice : Codable
{
public var uid:String
public var number:String
public var dateText:String
public var total:Double
public var balance:Double
public var paid:Bool
required public init(){}
}
public class CourierBookOrderResponse : Codable
{
public var done:Bool
public var needsAction:Bool
public var clientSecret:String
public var setupIntentId:String
public var code:String
public var trackUrl:String
public var icsUrl:String
public var windowText:String
public var promise:String
public var total:Double
public var payTiming:String
public var cardLast4:String
public var repeats:String
public var linkSentBy:String
public var reopenStep:String
public var responseStatus:ResponseStatus
required public init(){}
}
public class CourierCustomerRow : Codable
{
public var contactId:Int
public var name:String
public var phone:String
public var billingMode:String
public var accountCode:String
public var orders:Int
public var lastOrderAt:Date?
public var unbilled:Int
public var unbilledAmount:Double
public var cards:Int
required public init(){}
}
public class RunResult : Codable
{
public var invoices:Int
public var orders:Int
public var total:Double
public var skipped:[String] = []
required public init(){}
}
Swift CustomerAppTrackRequest DTOs
To override the Content-type in your clients, use the HTTP Accept Header, append the .json suffix or ?format=json
To embed the response in a jsonp callback, append ?callback=myCallback
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /v1/c/app/orders/{Code}/track HTTP/1.1
Host: api.dev.dynamics.trendsic.com
Accept: application/json
Content-Type: application/json
Content-Length: length
{"Code":"String","Slug":"String","Profile":"String"}
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: length
{"Boot":{"Profile":"String","Available":false,"Reason":"String","AuthMethod":"String","Slug":"String","Page":{"Available":false,"BookingOn":false,"Business":{"Name":"String","Phone":"String"},"Profile":{"Code":"String","Name":"String","Shape":"String","Template":"String","UnitOne":"String","UnitMany":"String","UnitOneEs":"String","UnitManyEs":"String","FacilityNoun":"String","FacilityNounEs":"String","FacilityName":"String","Levels":[{"Code":"String","Name":"String","Ready":"String","WithinMin":0,"InBy":"String","Surcharge":0,"Days":[0],"DeadlineMin":0}],"Asap":false,"Recurring":false,"PayTiming":"String","FinalAfterCount":false,"CancelFee":0,"MissedFee":0,"MissedWaitMin":0,"ServiceArea":["String"],"Zips":["String"],"Handoffs":{"Hand":false,"Porch":false,"Desk":false,"SigRequired":false,"IdRequired":false,"CodeRequired":false}},"Profiles":[{"Code":"String","Name":"String","Shape":"String"}],"CardEnabled":false,"PublishableKey":"String","AppUrl":"String","Today":"String","Weekday":0,"NowMin":0},"ManifestUrl":"String"},"Customer":{"ContactId":0,"FirstName":"String","LastName":"String","Name":"String","Phone":"String","NeedsName":false,"BillingMode":"String","AccountCode":"String","Addresses":[{"Id":0,"Label":"String","Street":"String","Unit":"String","City":"String","Zip":"String","Lat":0,"Lng":0,"InArea":false}],"Cards":[{"Id":0,"Label":"String","Brand":"String","Last4":"String","IsDefault":false}],"Notif":{"Texts":false,"Push":false,"Promos":false},"Orders":[{"Id":0,"Code":"String","Status":"String","State":"String","Active":false,"LevelCode":"String","LevelName":"String","Units":0,"UnitsFound":0,"Address":"String","Unit":"String","Zip":"String","DropAddress":"String","RecipientName":"String","Handoff":"String","IsAsap":false,"DayIx":0,"DateText":"String","StartMin":0,"EndMin":0,"DriverFirstName":"String","EtaMin":0,"Promise":"String","PayMode":"String","Amount":0,"Charged":0,"Tip":0,"CardLast4":"String","RecurrenceId":0,"Steps":[{"Key":"String","Done":false,"Time":"String"}]}],"Recurring":[{"Id":0,"Weekday":0,"StartMin":0,"EndMin":0,"Cadence":"String","LevelCode":"String","Units":0,"Handoff":"String","Address":"String","Paused":false,"PayMode":"String","CardLast4":"String","NextDate":"String","SkippedDate":"String","AheadDays":0}],"Invoices":[{"Uid":"00000000000000000000000000000000","Number":"String","DateText":"String","Total":0,"Balance":0,"Paid":false}],"Today":"String","NowMin":0},"Addresses":[{"Id":0,"Label":"String","Street":"String","Unit":"String","City":"String","Zip":"String","Lat":0,"Lng":0,"InArea":false}],"Cards":[{"Id":0,"Label":"String","Brand":"String","Last4":"String","IsDefault":false}],"Notif":{"Texts":false,"Push":false,"Promos":false},"Recurring":[{"Id":0,"Weekday":0,"StartMin":0,"EndMin":0,"Cadence":"String","LevelCode":"String","Units":0,"Handoff":"String","Address":"String","Paused":false,"PayMode":"String","CardLast4":"String","NextDate":"String","SkippedDate":"String","AheadDays":0}],"Booked":{"Done":false,"NeedsAction":false,"ClientSecret":"String","SetupIntentId":"String","Code":"String","TrackUrl":"String","IcsUrl":"String","WindowText":"String","Promise":"String","Total":0,"PayTiming":"String","CardLast4":"String","Repeats":"String","LinkSentBy":"String","ReopenStep":"String","ResponseStatus":{"ErrorCode":"String","Message":"String","StackTrace":"String","Errors":[{"ErrorCode":"String","FieldName":"String","Message":"String","Meta":{"String":"String"}}],"Meta":{"String":"String"}}},"Sent":false,"Token":"String","NeedsName":false,"Name":"String","Url":"String","ClientSecret":"String","PublishableKey":"String","Message":"String","ReopenStep":"String","Customers":[{"ContactId":0,"Name":"String","Phone":"String","BillingMode":"String","AccountCode":"String","Orders":0,"LastOrderAt":"0001-01-01T00:00:00.0000000","Unbilled":0,"UnbilledAmount":0,"Cards":0}],"Run":{"Invoices":0,"Orders":0,"Total":0,"Skipped":["String"]},"ResponseStatus":{"ErrorCode":"String","Message":"String","StackTrace":"String","Errors":[{"ErrorCode":"String","FieldName":"String","Message":"String","Meta":{"String":"String"}}],"Meta":{"String":"String"}}}