Requires any of the roles: | bookingsupplier-administrator-write, bookingsupplier-administrator-read, superadmin |
GET | /billing/company | Get billing details for the company. | Get billing details for the company. |
---|
import Foundation
import ServiceStack
// @ApiResponse(Description="You were unauthorized to call this service", StatusCode=401)
// @ValidateRequest(Validator="IsAuthenticated")
public class CompanyBillingInformation : QueryDb2<BillingInformation, BillingMethodQueryResponse>
{
/**
* The company id, if empty will use the company id for the user you are logged in with.
*/
// @ApiMember(Description="The company id, if empty will use the company id for the user you are logged in with.")
public var companyId:String?
/**
* If you want to include the billing methods to select from
*/
// @ApiMember(DataType="boolean", Description="If you want to include the billing methods to select from", ParameterType="query")
public var includeBillingMethodOptions:Bool
required public init(){ super.init() }
private enum CodingKeys : String, CodingKey {
case companyId
case includeBillingMethodOptions
}
required public init(from decoder: Decoder) throws {
try super.init(from: decoder)
let container = try decoder.container(keyedBy: CodingKeys.self)
companyId = try container.decodeIfPresent(String.self, forKey: .companyId)
includeBillingMethodOptions = try container.decodeIfPresent(Bool.self, forKey: .includeBillingMethodOptions)
}
public override func encode(to encoder: Encoder) throws {
try super.encode(to: encoder)
var container = encoder.container(keyedBy: CodingKeys.self)
if companyId != nil { try container.encode(companyId, forKey: .companyId) }
if includeBillingMethodOptions != nil { try container.encode(includeBillingMethodOptions, forKey: .includeBillingMethodOptions) }
}
}
public class BillingInformation : BaseModel
{
public var billingMethod:BillingMethod
// @Required()
public var billingMethodId:Int?
// @Required()
public var name:String?
public var attention:String
public var street1:String
public var street2:String
public var zipCode:String
public var city:String
public var email:String
public var creditCard:String
public var creditCardHolder:String
public var creditCardNumber:String
public var validToYear:Int16?
public var validToMonth:Int16?
public var csv:String
// @Required()
public var updated:Date?
// @Required()
public var created:Date?
// @Required()
public var countryId:String?
// @Required()
public var paymentTermsDays:Int?
public var vatRegistrationNumber:String
public var gln:String
public var referenceLine1:String
public var referenceLine2:String
public var modifiedDate:Date?
// @Required()
public var id:String?
required public init(){ super.init() }
private enum CodingKeys : String, CodingKey {
case billingMethod
case billingMethodId
case name
case attention
case street1
case street2
case zipCode
case city
case email
case creditCard
case creditCardHolder
case creditCardNumber
case validToYear
case validToMonth
case csv
case updated
case created
case countryId
case paymentTermsDays
case vatRegistrationNumber
case gln
case referenceLine1
case referenceLine2
case modifiedDate
case id
}
required public init(from decoder: Decoder) throws {
try super.init(from: decoder)
let container = try decoder.container(keyedBy: CodingKeys.self)
billingMethod = try container.decodeIfPresent(BillingMethod.self, forKey: .billingMethod)
billingMethodId = try container.decodeIfPresent(Int.self, forKey: .billingMethodId)
name = try container.decodeIfPresent(String.self, forKey: .name)
attention = try container.decodeIfPresent(String.self, forKey: .attention)
street1 = try container.decodeIfPresent(String.self, forKey: .street1)
street2 = try container.decodeIfPresent(String.self, forKey: .street2)
zipCode = try container.decodeIfPresent(String.self, forKey: .zipCode)
city = try container.decodeIfPresent(String.self, forKey: .city)
email = try container.decodeIfPresent(String.self, forKey: .email)
creditCard = try container.decodeIfPresent(String.self, forKey: .creditCard)
creditCardHolder = try container.decodeIfPresent(String.self, forKey: .creditCardHolder)
creditCardNumber = try container.decodeIfPresent(String.self, forKey: .creditCardNumber)
validToYear = try container.decodeIfPresent(Int16.self, forKey: .validToYear)
validToMonth = try container.decodeIfPresent(Int16.self, forKey: .validToMonth)
csv = try container.decodeIfPresent(String.self, forKey: .csv)
updated = try container.decodeIfPresent(Date.self, forKey: .updated)
created = try container.decodeIfPresent(Date.self, forKey: .created)
countryId = try container.decodeIfPresent(String.self, forKey: .countryId)
paymentTermsDays = try container.decodeIfPresent(Int.self, forKey: .paymentTermsDays)
vatRegistrationNumber = try container.decodeIfPresent(String.self, forKey: .vatRegistrationNumber)
gln = try container.decodeIfPresent(String.self, forKey: .gln)
referenceLine1 = try container.decodeIfPresent(String.self, forKey: .referenceLine1)
referenceLine2 = try container.decodeIfPresent(String.self, forKey: .referenceLine2)
modifiedDate = try container.decodeIfPresent(Date.self, forKey: .modifiedDate)
id = try container.decodeIfPresent(String.self, forKey: .id)
}
public override func encode(to encoder: Encoder) throws {
try super.encode(to: encoder)
var container = encoder.container(keyedBy: CodingKeys.self)
if billingMethod != nil { try container.encode(billingMethod, forKey: .billingMethod) }
if billingMethodId != nil { try container.encode(billingMethodId, forKey: .billingMethodId) }
if name != nil { try container.encode(name, forKey: .name) }
if attention != nil { try container.encode(attention, forKey: .attention) }
if street1 != nil { try container.encode(street1, forKey: .street1) }
if street2 != nil { try container.encode(street2, forKey: .street2) }
if zipCode != nil { try container.encode(zipCode, forKey: .zipCode) }
if city != nil { try container.encode(city, forKey: .city) }
if email != nil { try container.encode(email, forKey: .email) }
if creditCard != nil { try container.encode(creditCard, forKey: .creditCard) }
if creditCardHolder != nil { try container.encode(creditCardHolder, forKey: .creditCardHolder) }
if creditCardNumber != nil { try container.encode(creditCardNumber, forKey: .creditCardNumber) }
if validToYear != nil { try container.encode(validToYear, forKey: .validToYear) }
if validToMonth != nil { try container.encode(validToMonth, forKey: .validToMonth) }
if csv != nil { try container.encode(csv, forKey: .csv) }
if updated != nil { try container.encode(updated, forKey: .updated) }
if created != nil { try container.encode(created, forKey: .created) }
if countryId != nil { try container.encode(countryId, forKey: .countryId) }
if paymentTermsDays != nil { try container.encode(paymentTermsDays, forKey: .paymentTermsDays) }
if vatRegistrationNumber != nil { try container.encode(vatRegistrationNumber, forKey: .vatRegistrationNumber) }
if gln != nil { try container.encode(gln, forKey: .gln) }
if referenceLine1 != nil { try container.encode(referenceLine1, forKey: .referenceLine1) }
if referenceLine2 != nil { try container.encode(referenceLine2, forKey: .referenceLine2) }
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 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 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(){}
}
Swift CompanyBillingInformation 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.
GET /billing/company HTTP/1.1 Host: api.bokamera.se Accept: application/json
HTTP/1.1 200 OK Content-Type: application/json 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"}}}