| POST, GET | /api/SerialDetail |
|---|
import Foundation
import ServiceStack
/**
* SerialDetailRequires active-e Inventory Service
*/
// @DataContract
public class SerialDetailRequest : BaseSecureRequest
{
/**
* The PK being used for lookup. Do not use if Serial is passed in.
*/
// @DataMember
// @ApiMember(DataType="integer", Description="The PK being used for lookup. Do not use if Serial is passed in.", Format="int64", Name="Pk", ParameterType="query")
public var pk:Int?
/**
* The Serial# being used for lookup. Do not use if Pk is passed in.
*/
// @DataMember
// @ApiMember(DataType="string", Description="The Serial# being used for lookup. Do not use if Pk is passed in.", Name="Serial", ParameterType="query")
public var serial:String
// @DataMember
public var skipImages:Bool
/**
* If sent, the Customer Acct will be used for customer specific pricing.
*/
// @DataMember
// @ApiMember(DataType="integer", Description="If sent, the Customer Acct will be used for customer specific pricing.", Format="int32", Name="CustomerAcct", ParameterType="query")
public var customerAcct:Int?
required public init(){ super.init() }
private enum CodingKeys : String, CodingKey {
case pk
case serial
case skipImages
case customerAcct
}
required public init(from decoder: Decoder) throws {
try super.init(from: decoder)
let container = try decoder.container(keyedBy: CodingKeys.self)
pk = try container.decodeIfPresent(Int.self, forKey: .pk)
serial = try container.decodeIfPresent(String.self, forKey: .serial)
skipImages = try container.decodeIfPresent(Bool.self, forKey: .skipImages)
customerAcct = try container.decodeIfPresent(Int.self, forKey: .customerAcct)
}
public override func encode(to encoder: Encoder) throws {
try super.encode(to: encoder)
var container = encoder.container(keyedBy: CodingKeys.self)
if pk != nil { try container.encode(pk, forKey: .pk) }
if serial != nil { try container.encode(serial, forKey: .serial) }
if skipImages != nil { try container.encode(skipImages, forKey: .skipImages) }
if customerAcct != nil { try container.encode(customerAcct, forKey: .customerAcct) }
}
}
// @DataContract
public class BaseSecureRequest : BaseRequest
{
/**
* The Login Token return by the Security API. Required for secured calls.
*/
// @DataMember
// @ApiMember(DataType="string", Description="The Login Token return by the Security API. Required for secured calls.", Name="Token", ParameterType="Header")
public var token:String
required public init(){ super.init() }
private enum CodingKeys : String, CodingKey {
case token
}
required public init(from decoder: Decoder) throws {
try super.init(from: decoder)
let container = try decoder.container(keyedBy: CodingKeys.self)
token = try container.decodeIfPresent(String.self, forKey: .token)
}
public override func encode(to encoder: Encoder) throws {
try super.encode(to: encoder)
var container = encoder.container(keyedBy: CodingKeys.self)
if token != nil { try container.encode(token, forKey: .token) }
}
}
// @DataContract
public class BaseRequest : Codable
{
/**
* This is your AIM API Key provided by Tri-Tech
*/
// @DataMember
// @ApiMember(DataType="string", Description="This is your AIM API Key provided by Tri-Tech", IsRequired=true, Name="ApiKey", ParameterType="Header")
public var apiKey:String
/**
* The OAuthToken token return by AeServices30
*/
// @DataMember
// @ApiMember(DataType="string", Description="The OAuthToken token return by AeServices30", IsRequired=true, Name="OAuthToken", ParameterType="Header")
public var oAuthToken:String
/**
* The Device ID of the Mobile Device. Not used for non-mobile devices.
*/
// @DataMember
// @ApiMember(DataType="string", Description="The Device ID of the Mobile Device. Not used for non-mobile devices.", Name="DeviceId", ParameterType="Header")
public var deviceId:String
/**
* An identifier for your integration
*/
// @DataMember
// @ApiMember(DataType="string", Description="An identifier for your integration", IsRequired=true, Name="AppId", ParameterType="Header")
public var appId:String
required public init(){}
}
// @DataContract
public class SerialDetailResponse : BaseResponse
{
// @DataMember
public var sasPk:Int
// @DataMember
public var serial:String
// @DataMember
public var saqPk:Int
// @DataMember
public var locPk:Int
// @DataMember
public var location:String
// @DataMember
public var skuPk:Int
// @DataMember
public var sku:String
// @DataMember
public var sadPk:Int
// @DataMember
public var model:String
// @DataMember
public var details:InventoryDetailBySerial
required public init(){ super.init() }
private enum CodingKeys : String, CodingKey {
case sasPk
case serial
case saqPk
case locPk
case location
case skuPk
case sku
case sadPk
case model
case details
}
required public init(from decoder: Decoder) throws {
try super.init(from: decoder)
let container = try decoder.container(keyedBy: CodingKeys.self)
sasPk = try container.decodeIfPresent(Int.self, forKey: .sasPk)
serial = try container.decodeIfPresent(String.self, forKey: .serial)
saqPk = try container.decodeIfPresent(Int.self, forKey: .saqPk)
locPk = try container.decodeIfPresent(Int.self, forKey: .locPk)
location = try container.decodeIfPresent(String.self, forKey: .location)
skuPk = try container.decodeIfPresent(Int.self, forKey: .skuPk)
sku = try container.decodeIfPresent(String.self, forKey: .sku)
sadPk = try container.decodeIfPresent(Int.self, forKey: .sadPk)
model = try container.decodeIfPresent(String.self, forKey: .model)
details = try container.decodeIfPresent(InventoryDetailBySerial.self, forKey: .details)
}
public override func encode(to encoder: Encoder) throws {
try super.encode(to: encoder)
var container = encoder.container(keyedBy: CodingKeys.self)
if sasPk != nil { try container.encode(sasPk, forKey: .sasPk) }
if serial != nil { try container.encode(serial, forKey: .serial) }
if saqPk != nil { try container.encode(saqPk, forKey: .saqPk) }
if locPk != nil { try container.encode(locPk, forKey: .locPk) }
if location != nil { try container.encode(location, forKey: .location) }
if skuPk != nil { try container.encode(skuPk, forKey: .skuPk) }
if sku != nil { try container.encode(sku, forKey: .sku) }
if sadPk != nil { try container.encode(sadPk, forKey: .sadPk) }
if model != nil { try container.encode(model, forKey: .model) }
if details != nil { try container.encode(details, forKey: .details) }
}
}
// @DataContract
public class BaseResponse : Codable
{
/**
*
*/
// @DataMember
// @ApiMember(DataType="BaseResponseResult", Description="", Name="Status", ParameterType="body")
public var status:BaseResponseResult
required public init(){}
}
// @DataContract
public class BaseResponseResult : Codable
{
/**
*
*/
// @DataMember
// @ApiMember(DataType="string", Description="", Name="StatusCode", ParameterType="body")
public var statusCode:String
/**
*
*/
// @DataMember
// @ApiMember(DataType="string", Description="", Name="Login", ParameterType="body")
public var login:String
/**
*
*/
// @DataMember
// @ApiMember(DataType="string", Description="", Name="ErrorCode", ParameterType="body")
public var errorCode:String
/**
*
*/
// @DataMember
// @ApiMember(DataType="string", Description="", Name="ErrorDisplayText", ParameterType="body")
public var errorDisplayText:String
/**
*
*/
// @DataMember
// @ApiMember(DataType="string", Description="", Name="ErrorMessage", ParameterType="body")
public var errorMessage:String
/**
*
*/
// @DataMember
// @ApiMember(DataType="string", Description="", ExcludeInSchema=true, Name="DomainName", ParameterType="body")
public var domainName:String
/**
*
*/
// @DataMember
// @ApiMember(DataType="string", Description="", ExcludeInSchema=true, Name="IPAddress", ParameterType="body")
public var ipAddress:String
required public init(){}
}
// @DataContract
public class InventoryDetailBySerial : Codable
{
// @DataMember
public var sasPk:Int
// @DataMember
public var serial:String
// @DataMember
public var retail:Double
// @DataMember
public var ourPrice:Double
// @DataMember
public var salePrice:Double?
// @DataMember
public var status:String
// @DataMember
public var saleInfo:String
// @DataMember
public var priceA:Double
// @DataMember
public var priceB:Double
// @DataMember
public var priceC:Double
// @DataMember
public var minPrice:Double
// @DataMember
public var activeEPrice:Double
// @DataMember
public var allowPriceChange:Bool
// @DataMember
public var cost:Double?
// @DataMember
public var weightedCost:Double?
// @DataMember
public var notes:String
// @DataMember
public var attributes:[InventoryDetailAttribute] = []
// @DataMember
public var images:[ImageInfo] = []
// @DataMember
public var hasImages:Bool
// @DataMember
public var isActiveeHoldback:Bool
// @DataMember
public var customerAcct:Int?
// @DataMember
public var availableForSTR:Bool
required public init(){}
}
// @DataContract
public class InventoryDetailAttribute : Codable
{
// @DataMember
public var name:String
// @DataMember
public var value:String
// @DataMember
public var priority:Int
/**
* 1 is 'Don't Send to Web', 2 is 'Send To Web'
*/
// @DataMember
// @ApiMember(DataType="int", Description="1 is 'Don't Send to Web', 2 is 'Send To Web'", Name="WebType", ParameterType="query")
public var webType:Int
required public init(){}
}
// @DataContract
public class ImageInfo : Codable
{
// @DataMember
public var url:String
// @DataMember
public var imageStream:String
// @DataMember
public var imageSize:String
// @DataMember
public var errorMessage:String
// @DataMember
public var uriPk:Int?
required public init(){}
}
Swift SerialDetailRequest DTOs
To override the Content-type in your clients, use the HTTP Accept Header, append the .other suffix or ?format=other
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /api/SerialDetail HTTP/1.1
Host: active-ewebservice.biz
Accept: text/jsonl
Content-Type: text/jsonl
Content-Length: length
{"Pk":0,"Serial":"String","SkipImages":false,"CustomerAcct":0,"Token":"String","ApiKey":"String","OAuthToken":"String","DeviceId":"String","AppId":"String"}
HTTP/1.1 200 OK
Content-Type: text/jsonl
Content-Length: length
{"SasPk":0,"Serial":"String","SaqPk":0,"LocPk":0,"Location":"String","SkuPk":0,"SKU":"String","SadPk":0,"Model":"String","Status":{"StatusCode":"String","Login":"String","ErrorCode":"String","ErrorDisplayText":"String","ErrorMessage":"String","DomainName":"String","IpAddress":"String"}}