POST, GET | /api/GetCustomerHistory |
---|
import Foundation
import ServiceStack
/**
* GetCustomerHistoryRequires active-e Customer Service.
*/
// @DataContract
public class GetCustomerHistoryRequest : BaseSecureRequest
{
// @DataMember
public var getInvoices:Bool?
// @DataMember
public var getTickets:Bool?
// @DataMember
public var getProposals:Bool?
// @DataMember
public var getContracts:Bool?
// @DataMember
public var getOrders:Bool?
// @DataMember
public var getShortTermRentals:Bool?
// @DataMember
public var getWebPayments:Bool?
// @DataMember
public var showClosed:Bool?
// @DataMember
public var getPaymentsDue:Bool?
// @DataMember
public var dateFrom:String
// @DataMember
public var dateTo:String
// @DataMember
public var acct:Int?
// @DataMember
public var getMemberships:Bool?
// @DataMember
public var getPendingWebOrders:Bool?
// @DataMember
public var getFutureTeeTimes:Bool?
// @DataMember
public var getStationReservations:Bool?
// @DataMember
public var getPendingWebRentals:Bool?
// @DataMember
public var getValuePacks:Bool?
// @DataMember
public var includeUninvoicedScheduling:Bool?
// @DataMember
public var includeOnHold:Bool?
// @DataMember
public var getConsignments:Bool?
// @DataMember
public var getRecurringHeaderInfo:Bool?
required public init(){ super.init() }
private enum CodingKeys : String, CodingKey {
case getInvoices
case getTickets
case getProposals
case getContracts
case getOrders
case getShortTermRentals
case getWebPayments
case showClosed
case getPaymentsDue
case dateFrom
case dateTo
case acct
case getMemberships
case getPendingWebOrders
case getFutureTeeTimes
case getStationReservations
case getPendingWebRentals
case getValuePacks
case includeUninvoicedScheduling
case includeOnHold
case getConsignments
case getRecurringHeaderInfo
}
required public init(from decoder: Decoder) throws {
try super.init(from: decoder)
let container = try decoder.container(keyedBy: CodingKeys.self)
getInvoices = try container.decodeIfPresent(Bool.self, forKey: .getInvoices)
getTickets = try container.decodeIfPresent(Bool.self, forKey: .getTickets)
getProposals = try container.decodeIfPresent(Bool.self, forKey: .getProposals)
getContracts = try container.decodeIfPresent(Bool.self, forKey: .getContracts)
getOrders = try container.decodeIfPresent(Bool.self, forKey: .getOrders)
getShortTermRentals = try container.decodeIfPresent(Bool.self, forKey: .getShortTermRentals)
getWebPayments = try container.decodeIfPresent(Bool.self, forKey: .getWebPayments)
showClosed = try container.decodeIfPresent(Bool.self, forKey: .showClosed)
getPaymentsDue = try container.decodeIfPresent(Bool.self, forKey: .getPaymentsDue)
dateFrom = try container.decodeIfPresent(String.self, forKey: .dateFrom)
dateTo = try container.decodeIfPresent(String.self, forKey: .dateTo)
acct = try container.decodeIfPresent(Int.self, forKey: .acct)
getMemberships = try container.decodeIfPresent(Bool.self, forKey: .getMemberships)
getPendingWebOrders = try container.decodeIfPresent(Bool.self, forKey: .getPendingWebOrders)
getFutureTeeTimes = try container.decodeIfPresent(Bool.self, forKey: .getFutureTeeTimes)
getStationReservations = try container.decodeIfPresent(Bool.self, forKey: .getStationReservations)
getPendingWebRentals = try container.decodeIfPresent(Bool.self, forKey: .getPendingWebRentals)
getValuePacks = try container.decodeIfPresent(Bool.self, forKey: .getValuePacks)
includeUninvoicedScheduling = try container.decodeIfPresent(Bool.self, forKey: .includeUninvoicedScheduling)
includeOnHold = try container.decodeIfPresent(Bool.self, forKey: .includeOnHold)
getConsignments = try container.decodeIfPresent(Bool.self, forKey: .getConsignments)
getRecurringHeaderInfo = try container.decodeIfPresent(Bool.self, forKey: .getRecurringHeaderInfo)
}
public override func encode(to encoder: Encoder) throws {
try super.encode(to: encoder)
var container = encoder.container(keyedBy: CodingKeys.self)
if getInvoices != nil { try container.encode(getInvoices, forKey: .getInvoices) }
if getTickets != nil { try container.encode(getTickets, forKey: .getTickets) }
if getProposals != nil { try container.encode(getProposals, forKey: .getProposals) }
if getContracts != nil { try container.encode(getContracts, forKey: .getContracts) }
if getOrders != nil { try container.encode(getOrders, forKey: .getOrders) }
if getShortTermRentals != nil { try container.encode(getShortTermRentals, forKey: .getShortTermRentals) }
if getWebPayments != nil { try container.encode(getWebPayments, forKey: .getWebPayments) }
if showClosed != nil { try container.encode(showClosed, forKey: .showClosed) }
if getPaymentsDue != nil { try container.encode(getPaymentsDue, forKey: .getPaymentsDue) }
if dateFrom != nil { try container.encode(dateFrom, forKey: .dateFrom) }
if dateTo != nil { try container.encode(dateTo, forKey: .dateTo) }
if acct != nil { try container.encode(acct, forKey: .acct) }
if getMemberships != nil { try container.encode(getMemberships, forKey: .getMemberships) }
if getPendingWebOrders != nil { try container.encode(getPendingWebOrders, forKey: .getPendingWebOrders) }
if getFutureTeeTimes != nil { try container.encode(getFutureTeeTimes, forKey: .getFutureTeeTimes) }
if getStationReservations != nil { try container.encode(getStationReservations, forKey: .getStationReservations) }
if getPendingWebRentals != nil { try container.encode(getPendingWebRentals, forKey: .getPendingWebRentals) }
if getValuePacks != nil { try container.encode(getValuePacks, forKey: .getValuePacks) }
if includeUninvoicedScheduling != nil { try container.encode(includeUninvoicedScheduling, forKey: .includeUninvoicedScheduling) }
if includeOnHold != nil { try container.encode(includeOnHold, forKey: .includeOnHold) }
if getConsignments != nil { try container.encode(getConsignments, forKey: .getConsignments) }
if getRecurringHeaderInfo != nil { try container.encode(getRecurringHeaderInfo, forKey: .getRecurringHeaderInfo) }
}
}
// @DataContract
public class BaseSecureRequest : BaseRequest
{
/**
*
*/
// @DataMember
// @ApiMember(DataType="string", Description="", Name="Token", ParameterType="Header")
public var token:String
/**
*
*/
// @DataMember
// @ApiMember(DataType="string", Description="", Name="DeviceId", ParameterType="Header")
public var deviceId:String
/**
*
*/
// @DataMember
// @ApiMember(DataType="string", Description="", IsRequired=true, Name="AppId", ParameterType="Header")
public var appId:String
required public init(){ super.init() }
private enum CodingKeys : String, CodingKey {
case token
case deviceId
case appId
}
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)
deviceId = try container.decodeIfPresent(String.self, forKey: .deviceId)
appId = try container.decodeIfPresent(String.self, forKey: .appId)
}
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) }
if deviceId != nil { try container.encode(deviceId, forKey: .deviceId) }
if appId != nil { try container.encode(appId, forKey: .appId) }
}
}
// @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
// @DataMember
// @ApiMember(DataType="string", Name="OAuthToken", ParameterType="header")
public var oAuthToken:String
required public init(){}
}
// @DataContract
public class GetCustomerHistoryResponse : BaseResponse
{
// @DataMember
public var customerHistory:[CustomerHistoryGeneric] = []
required public init(){ super.init() }
private enum CodingKeys : String, CodingKey {
case customerHistory
}
required public init(from decoder: Decoder) throws {
try super.init(from: decoder)
let container = try decoder.container(keyedBy: CodingKeys.self)
customerHistory = try container.decodeIfPresent([CustomerHistoryGeneric].self, forKey: .customerHistory) ?? []
}
public override func encode(to encoder: Encoder) throws {
try super.encode(to: encoder)
var container = encoder.container(keyedBy: CodingKeys.self)
if customerHistory.count > 0 { try container.encode(customerHistory, forKey: .customerHistory) }
}
}
// @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 CustomerHistoryGeneric : Codable
{
// @DataMember
public var date:Date
// @DataMember
public var dateStr:String
// @DataMember
public var ref:String
// @DataMember
public var desc:String
// @DataMember
public var amount:Double
// @DataMember
public var origAmount:Double
// @DataMember
public var late:Bool
// @DataMember
public var refType:String
// @DataMember
public var po:String
// @DataMember
public var estReceivedDate:Date?
required public init(){}
}
Swift GetCustomerHistoryRequest 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 /api/GetCustomerHistory HTTP/1.1
Host: active-ewebservice.biz
Accept: application/json
Content-Type: application/json
Content-Length: length
{"GetInvoices":false,"GetTickets":false,"GetProposals":false,"GetContracts":false,"GetOrders":false,"GetShortTermRentals":false,"GetWebPayments":false,"ShowClosed":false,"GetPaymentsDue":false,"DateFrom":"String","DateTo":"String","Acct":0,"GetMemberships":false,"GetPendingWebOrders":false,"GetFutureTeeTimes":false,"GetStationReservations":false,"GetPendingWebRentals":false,"GetValuePacks":false,"IncludeUninvoicedScheduling":false,"IncludeOnHold":false,"GetConsignments":false,"GetRecurringHeaderInfo":false,"Token":"String","DeviceId":"String","AppId":"String","ApiKey":"String","OAuthToken":"String"}
HTTP/1.1 200 OK Content-Type: application/json Content-Length: length {"CustomerHistory":[{}],"Status":{"StatusCode":"String","Login":"String","ErrorCode":"String","ErrorDisplayText":"String","ErrorMessage":"String","DomainName":"String","IpAddress":"String"}}