GET | /billing/methods | Get billing methods | Get all valid billing methods. |
---|
import Foundation
import ServiceStack
// @ApiResponse(Description="You were unauthorized to call this service", StatusCode=401)
public class BillingMethodQuery : QueryDb2<BillingMethod, BillingMethodQueryResponse>
{
/**
* If you want to only get billing methods that are valid for a specific country
*/
// @ApiMember(DataType="string", Description="If you want to only get billing methods that are valid for a specific country", ParameterType="query")
public var countryId:String
required public init(){ super.init() }
private enum CodingKeys : String, CodingKey {
case countryId
}
required public init(from decoder: Decoder) throws {
try super.init(from: decoder)
let container = try decoder.container(keyedBy: CodingKeys.self)
countryId = try container.decodeIfPresent(String.self, forKey: .countryId)
}
public override func encode(to encoder: Encoder) throws {
try super.encode(to: encoder)
var container = encoder.container(keyedBy: CodingKeys.self)
if countryId != nil { try container.encode(countryId, forKey: .countryId) }
}
}
public class BillingMethod : BaseModel
{
public var billingMethodCountriesRelation:[BillingMethodCountriesRelation] = []
// @Required()
public var name:String?
// @Required()
public var Description:String?
public var modifiedDate:Date?
public var id:Int
required public init(){ super.init() }
private enum CodingKeys : String, CodingKey {
case billingMethodCountriesRelation
case name
case Description
case modifiedDate
case id
}
required public init(from decoder: Decoder) throws {
try super.init(from: decoder)
let container = try decoder.container(keyedBy: CodingKeys.self)
billingMethodCountriesRelation = try container.decodeIfPresent([BillingMethodCountriesRelation].self, forKey: .billingMethodCountriesRelation) ?? []
name = try container.decodeIfPresent(String.self, forKey: .name)
Description = try container.decodeIfPresent(String.self, forKey: .Description)
modifiedDate = try container.decodeIfPresent(Date.self, forKey: .modifiedDate)
id = try container.decodeIfPresent(Int.self, forKey: .id)
}
public override func encode(to encoder: Encoder) throws {
try super.encode(to: encoder)
var container = encoder.container(keyedBy: CodingKeys.self)
if billingMethodCountriesRelation.count > 0 { try container.encode(billingMethodCountriesRelation, forKey: .billingMethodCountriesRelation) }
if name != nil { try container.encode(name, forKey: .name) }
if Description != nil { try container.encode(Description, forKey: .Description) }
if modifiedDate != nil { try container.encode(modifiedDate, forKey: .modifiedDate) }
if id != nil { try container.encode(id, forKey: .id) }
}
}
public class BaseModel : Codable
{
required public init(){}
}
public class BillingMethodCountriesRelation : BaseModel
{
// @Required()
public var billingMethodId:Int?
// @Required()
public var countryId:String?
public var modifiedDate:Date?
required public init(){ super.init() }
private enum CodingKeys : String, CodingKey {
case billingMethodId
case countryId
case modifiedDate
}
required public init(from decoder: Decoder) throws {
try super.init(from: decoder)
let container = try decoder.container(keyedBy: CodingKeys.self)
billingMethodId = try container.decodeIfPresent(Int.self, forKey: .billingMethodId)
countryId = try container.decodeIfPresent(String.self, forKey: .countryId)
modifiedDate = try container.decodeIfPresent(Date.self, forKey: .modifiedDate)
}
public override func encode(to encoder: Encoder) throws {
try super.encode(to: encoder)
var container = encoder.container(keyedBy: CodingKeys.self)
if billingMethodId != nil { try container.encode(billingMethodId, forKey: .billingMethodId) }
if countryId != nil { try container.encode(countryId, forKey: .countryId) }
if modifiedDate != nil { try container.encode(modifiedDate, forKey: .modifiedDate) }
}
}
public class BillingMethodQueryResponse : Codable
{
/**
* The billing method id
*/
// @ApiMember(Description="The billing method id")
public var id:Int
/**
* The billing method name
*/
// @ApiMember(Description="The billing method name")
public var name:String
/**
* The billing method description
*/
// @ApiMember(Description="The billing method description")
public var Description:String
/**
* The billing method is valid for the following countries
*/
// @ApiMember(Description="The billing method is valid for the following countries")
public var countries:[String] = []
required public init(){}
}
public class AccessKeyTypeResponse : Codable
{
public var id:Int
public var keyType:String
public var Description:String
required public init(){}
}
To override the Content-type in your clients, use the HTTP Accept Header, append the .csv suffix or ?format=csv
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
GET /billing/methods HTTP/1.1 Host: api.bokamera.se Accept: text/csv
HTTP/1.1 200 OK Content-Type: text/csv Content-Length: length {"Offset":0,"Total":0,"Results":[{"Id":0,"Name":"String","Description":"String","Countries":["String"]}],"Meta":{"String":"String"},"ResponseStatus":{"ErrorCode":"String","Message":"String","StackTrace":"String","Errors":[{"ErrorCode":"String","FieldName":"String","Message":"String","Meta":{"String":"String"}}],"Meta":{"String":"String"}}}