AIM Web Services

<back to all web services

GetCustomerHistoryRequest

GetCustomerHistory
Requires active-e Customer Service.

The following routes are available for this service:
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

HTTP + JSON

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"}}