| POST | /stock/seal/details |
|---|
import Foundation
import ServiceStack
public class SealDetailsRequest : ApiServiceRequest
{
public var sealId:Int
required public init(){ super.init() }
private enum CodingKeys : String, CodingKey {
case sealId
}
required public init(from decoder: Decoder) throws {
try super.init(from: decoder)
let container = try decoder.container(keyedBy: CodingKeys.self)
sealId = try container.decodeIfPresent(Int.self, forKey: .sealId)
}
public override func encode(to encoder: Encoder) throws {
try super.encode(to: encoder)
var container = encoder.container(keyedBy: CodingKeys.self)
if sealId != nil { try container.encode(sealId, forKey: .sealId) }
}
}
public class ApiServiceRequest : IServiceRequest, IHasApiKey, IHasDeviceInfo, Codable
{
/**
* The API Key required for authentication
*/
// @ApiMember(DataType="string", Description="The API Key required for authentication", IsRequired=true)
public var apiKey:String
/**
* Latitude of the user making this request
*/
// @ApiMember(DataType="double", Description="Latitude of the user making this request")
public var latitude:Double
/**
* Longitude of the user making this request
*/
// @ApiMember(DataType="double", Description="Longitude of the user making this request")
public var longitude:Double
required public init(){}
}
public class SealDetailsResponse : ApiServiceResponse
{
public var principalName:String
public var upliftNumber:String
public var operatorName:String
public var outletName:String
public var upliftDate:String
public var sealNumber:String
public var currentWeight:String
public var targetWeight:String
public var hasWeightIssue:Bool
public var bucketName:String
public var claimNumbers:[String] = []
public var joinedClaimNumbers:String
public var sealImages:[FileDataItem] = []
public var orderHistory:[SealOrderHistoryItem] = []
public var movementHistory:[SealMovementHistoryItem] = []
required public init(){ super.init() }
private enum CodingKeys : String, CodingKey {
case principalName
case upliftNumber
case operatorName
case outletName
case upliftDate
case sealNumber
case currentWeight
case targetWeight
case hasWeightIssue
case bucketName
case claimNumbers
case joinedClaimNumbers
case sealImages
case orderHistory
case movementHistory
}
required public init(from decoder: Decoder) throws {
try super.init(from: decoder)
let container = try decoder.container(keyedBy: CodingKeys.self)
principalName = try container.decodeIfPresent(String.self, forKey: .principalName)
upliftNumber = try container.decodeIfPresent(String.self, forKey: .upliftNumber)
operatorName = try container.decodeIfPresent(String.self, forKey: .operatorName)
outletName = try container.decodeIfPresent(String.self, forKey: .outletName)
upliftDate = try container.decodeIfPresent(String.self, forKey: .upliftDate)
sealNumber = try container.decodeIfPresent(String.self, forKey: .sealNumber)
currentWeight = try container.decodeIfPresent(String.self, forKey: .currentWeight)
targetWeight = try container.decodeIfPresent(String.self, forKey: .targetWeight)
hasWeightIssue = try container.decodeIfPresent(Bool.self, forKey: .hasWeightIssue)
bucketName = try container.decodeIfPresent(String.self, forKey: .bucketName)
claimNumbers = try container.decodeIfPresent([String].self, forKey: .claimNumbers) ?? []
joinedClaimNumbers = try container.decodeIfPresent(String.self, forKey: .joinedClaimNumbers)
sealImages = try container.decodeIfPresent([FileDataItem].self, forKey: .sealImages) ?? []
orderHistory = try container.decodeIfPresent([SealOrderHistoryItem].self, forKey: .orderHistory) ?? []
movementHistory = try container.decodeIfPresent([SealMovementHistoryItem].self, forKey: .movementHistory) ?? []
}
public override func encode(to encoder: Encoder) throws {
try super.encode(to: encoder)
var container = encoder.container(keyedBy: CodingKeys.self)
if principalName != nil { try container.encode(principalName, forKey: .principalName) }
if upliftNumber != nil { try container.encode(upliftNumber, forKey: .upliftNumber) }
if operatorName != nil { try container.encode(operatorName, forKey: .operatorName) }
if outletName != nil { try container.encode(outletName, forKey: .outletName) }
if upliftDate != nil { try container.encode(upliftDate, forKey: .upliftDate) }
if sealNumber != nil { try container.encode(sealNumber, forKey: .sealNumber) }
if currentWeight != nil { try container.encode(currentWeight, forKey: .currentWeight) }
if targetWeight != nil { try container.encode(targetWeight, forKey: .targetWeight) }
if hasWeightIssue != nil { try container.encode(hasWeightIssue, forKey: .hasWeightIssue) }
if bucketName != nil { try container.encode(bucketName, forKey: .bucketName) }
if claimNumbers.count > 0 { try container.encode(claimNumbers, forKey: .claimNumbers) }
if joinedClaimNumbers != nil { try container.encode(joinedClaimNumbers, forKey: .joinedClaimNumbers) }
if sealImages.count > 0 { try container.encode(sealImages, forKey: .sealImages) }
if orderHistory.count > 0 { try container.encode(orderHistory, forKey: .orderHistory) }
if movementHistory.count > 0 { try container.encode(movementHistory, forKey: .movementHistory) }
}
}
public class ApiServiceResponse : IServiceResponse, Codable
{
/**
* Information about the response.
*/
// @ApiMember(Description="Information about the response.", IsRequired=true)
public var Description:String
/**
* Heading or summary of the response.
*/
// @ApiMember(Description="Heading or summary of the response.", IsRequired=true)
public var heading:String
/**
* Did the intended operation for this response complete successfully?
*/
// @ApiMember(DataType="boolean", Description="Did the intended operation for this response complete successfully?", IsRequired=true)
public var wasSuccessful:Bool
public var responseStatus:ResponseStatus
required public init(){}
}
public class FileDataItem : Codable
{
public var fileName:String
public var fileUrl:String
public var thumbnailUrl:String
public var fileId:String
public var thumbnailId:String
public var linkId:Int
public var createdDate:Date
required public init(){}
}
public class SealOrderHistoryItem : Codable
{
public var createdDate:String
public var orderId:Int
public var orderNumber:String
public var orderRequestingOperator:String
required public init(){}
}
public class SealMovementHistoryItem : Codable
{
public var id:Int
public var eventDateTime:String
public var actionUserName:String
public var scannedDepotName:String
public var assignedBucketName:String
public var assignedOrderNumber:String
public var assignedOperatorName:String
public var orderDriverName:String
public var orderDriverCompanyName:String
public var orderDriverLicensePlate:String
public var targetWeight:Double
public var currentWeight:Double
public var hadWeightIssue:Bool
public var hadUnknownUplift:Bool
public var wasPaused:Bool
public var pausedWasAwaitingAuth:Bool
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 /stock/seal/details HTTP/1.1
Host: antel.api.dev.86degrees.com
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length
{
sealId: 0,
apiKey: String,
latitude: 0,
longitude: 0
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length
{
principalName: String,
upliftNumber: String,
operatorName: String,
outletName: String,
upliftDate: String,
sealNumber: String,
currentWeight: String,
targetWeight: String,
hasWeightIssue: False,
bucketName: String,
claimNumbers:
[
String
],
joinedClaimNumbers: String,
sealImages:
[
{
fileName: String,
fileUrl: String,
thumbnailUrl: String,
linkId: 0,
createdDate: 0001-01-01
}
],
orderHistory:
[
{
createdDate: String,
orderId: 0,
orderNumber: String,
orderRequestingOperator: String
}
],
movementHistory:
[
{
id: 0,
eventDateTime: String,
actionUserName: String,
scannedDepotName: String,
assignedBucketName: String,
assignedOrderNumber: String,
assignedOperatorName: String,
orderDriverName: String,
orderDriverCompanyName: String,
orderDriverLicensePlate: String,
targetWeight: 0,
currentWeight: 0,
hadWeightIssue: False,
hadUnknownUplift: False,
wasPaused: False,
pausedWasAwaitingAuth: False
}
],
description: String,
heading: String,
wasSuccessful: False,
responseStatus:
{
errorCode: String,
message: String,
stackTrace: String,
errors:
[
{
errorCode: String,
fieldName: String,
message: String,
meta:
{
String: String
}
}
],
meta:
{
String: String
}
}
}