| Requires any of the roles: | Agent, Administrator, Agent, Administrator, Agent, Administrator, Agent, Administrator |
| GET,POST,DELETE,OPTIONS | /v1/CustomerCheckins/{Id} | ||
|---|---|---|---|
| GET,POST,DELETE,OPTIONS | /v1/CustomerCheckins |
import Foundation
import ServiceStack
public class CustomerCheckins : CustomerCheckinObject
{
public var apiKey:String
required public init(){ super.init() }
private enum CodingKeys : String, CodingKey {
case apiKey
}
required public init(from decoder: Decoder) throws {
try super.init(from: decoder)
let container = try decoder.container(keyedBy: CodingKeys.self)
apiKey = try container.decodeIfPresent(String.self, forKey: .apiKey)
}
public override func encode(to encoder: Encoder) throws {
try super.encode(to: encoder)
var container = encoder.container(keyedBy: CodingKeys.self)
if apiKey != nil { try container.encode(apiKey, forKey: .apiKey) }
}
}
public class CustomerCheckinObject : Codable
{
public var id:String
public var lineId:String
public var customerId:String
public var employeeId:String
public var locationId:String
public var stationId:String
public var signInTime:Date
public var adjustedSignInTime:Date
public var sendReminders:Bool
public var status:Int
public var taskTime:Int
public var completed:Bool
public var completedTime:Date
public var questionnaireSubmitted:Bool
public var lineIds:[String] = []
required public init(){}
}
public class CustomerCheckinsResponse : Codable
{
public var responseStatus:ResponseStatus
public var customerCheckins:[CustomerCheckinObject] = []
public var customerCheckinRequirements:CheckinInformation
required public init(){}
}
public class CheckinInformation : Codable
{
public var id:String
public var locationId:String
public var locationName:String
public var customerId:String?
public var questionnaireSubmitted:Bool?
public var name:String
public var Description:String
public var totalServiceDurationMinutes:Int
public var totalCost:Double
public var sendQuestionnaire:Bool
public var requireUpload:Bool
public var questions:[LineQuestion] = []
public var lines:[Line] = []
required public init(){}
}
public class LineQuestion : Codable
{
public var id:Int
public var customerCheckInId:String
public var lineId:String
public var question:String
public var answer:String
public var active:Bool
required public init(){}
}
public class Line : Codable
{
public var id:String
public var locationId:String
public var locationName:String
public var name:String
public var Description:String
public var serviceDurationMinutes:Int
public var waitTime:Int
public var cost:Double
public var upperThreshold:Int?
public var lowerThreshold:Int?
public var active:Bool
public var entDate:Date?
public var modDate:Date?
public var sendQuestionnaire:Bool
public var requireUpload:Bool
public var uploadMessage:String
public var lineImages:[LineImage] = []
required public init(){}
}
public class LineImage : Codable
{
public var imageId:String?
public var fileName:String
public var imageTitle:String
public var uploadDate:Date
required public init(){}
}
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/CustomerCheckins/{Id} HTTP/1.1
Host: api.dev.dynamics.trendsic.com
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length
{
ApiKey: 00000000000000000000000000000000,
Id: 00000000000000000000000000000000,
LineId: 00000000000000000000000000000000,
CustomerId: 00000000000000000000000000000000,
EmployeeId: 00000000000000000000000000000000,
LocationId: 00000000000000000000000000000000,
StationId: 00000000000000000000000000000000,
SignInTime: 0001-01-01,
AdjustedSignInTime: 0001-01-01,
SendReminders: False,
Status: 0,
TaskTime: 0,
Completed: False,
CompletedTime: 0001-01-01,
QuestionnaireSubmitted: False,
LineIds:
[
00000000000000000000000000000000
]
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length
{
ResponseStatus:
{
ErrorCode: String,
Message: String,
StackTrace: String,
Errors:
[
{
ErrorCode: String,
FieldName: String,
Message: String,
Meta:
{
String: String
}
}
],
Meta:
{
String: String
}
},
CustomerCheckins:
[
{
Id: 00000000000000000000000000000000,
LineId: 00000000000000000000000000000000,
CustomerId: 00000000000000000000000000000000,
EmployeeId: 00000000000000000000000000000000,
LocationId: 00000000000000000000000000000000,
StationId: 00000000000000000000000000000000,
SignInTime: 0001-01-01,
AdjustedSignInTime: 0001-01-01,
SendReminders: False,
Status: 0,
TaskTime: 0,
Completed: False,
CompletedTime: 0001-01-01,
QuestionnaireSubmitted: False,
LineIds:
[
00000000000000000000000000000000
]
}
],
CustomerCheckinRequirements:
{
Id: 00000000000000000000000000000000,
LocationId: 00000000000000000000000000000000,
LocationName: String,
CustomerId: 00000000000000000000000000000000,
QuestionnaireSubmitted: False,
Name: String,
Description: String,
TotalServiceDurationMinutes: 0,
TotalCost: 0,
SendQuestionnaire: False,
RequireUpload: False,
Questions:
[
{
Id: 0,
CustomerCheckInId: 00000000000000000000000000000000,
LineId: 00000000000000000000000000000000,
Question: String,
Answer: String,
Active: False
}
],
Lines:
[
{
Id: 00000000000000000000000000000000,
LocationId: 00000000000000000000000000000000,
LocationName: String,
Name: String,
Description: String,
ServiceDurationMinutes: 0,
WaitTime: 0,
Cost: 0,
UpperThreshold: 0,
LowerThreshold: 0,
Active: False,
EntDate: 0001-01-01,
ModDate: 0001-01-01,
SendQuestionnaire: False,
RequireUpload: False,
UploadMessage: String,
LineImages:
[
{
ImageId: 00000000000000000000000000000000,
FileName: String,
ImageTitle: String,
UploadDate: 0001-01-01
}
]
}
]
}
}