| POST | /customerarticle/fromarticle | Create CustomerArticle. | Create CustomerArticle. |
|---|
import Foundation
import ServiceStack
// @ApiResponse(Description="You were unauthorized to call this service", StatusCode=401)
public class CreateCustomerArticleFromArticle : FromArticleBase, ICompany
{
required public init(){ super.init() }
required public init(from decoder: Decoder) throws {
try super.init(from: decoder)
}
public override func encode(to encoder: Encoder) throws {
try super.encode(to: encoder)
}
}
public class FromArticleBase : Codable
{
/**
*
*/
// @ApiMember(Description="")
public var companyId:String?
/**
* Article ID for the rebate code
*/
// @ApiMember(Description="Article ID for the rebate code", IsRequired=true)
public var articleId:Int
/**
* Customer information
*/
// @ApiMember(Description="Customer information")
public var customer:CustomerToHandle
/**
* If you want to book with customer information instead of the Customer Id send the customer information here. Note: If customer profile already exists with the same email the information will not be changed, instead the provided information will be added as BookingsComments if it differs from the ordinairy profile.
*/
// @ApiMember(Description="If you want to book with customer information instead of the Customer Id send the customer information here. Note: If customer profile already exists with the same email the information will not be changed, instead the provided information will be added as BookingsComments if it differs from the ordinairy profile. ")
public var invoiceAddress:InvoiceAddressToHandle
required public init(){}
}
public class CustomerToHandle : CustomerBase
{
required public init(){ super.init() }
required public init(from decoder: Decoder) throws {
try super.init(from: decoder)
}
public override func encode(to encoder: Encoder) throws {
try super.encode(to: encoder)
}
}
public class CustomerBase : ICustomerBase, Codable
{
public var customerId:String?
public var firstname:String
public var lastname:String
public var email:String
public var phone:String
public var subscribedToNewsletter:Bool
public var personalIdentityNumber:String
required public init(){}
}
public class InvoiceAddressToHandle : IInvoiceAddress, Codable
{
public var corporateIdentityNumber:String
public var invoiceAddress1:String
public var invoiceAddress2:String
public var invoiceCity:String
public var invoicePostalCode:String
public var invoiceCountryCode:String
required public init(){}
}
public class CustomerArticleResponse : Codable
{
public var id:Int
public var companyId:String
public var articleId:Int?
public var price:Double?
public var vat:Double?
public var currencyId:String
public var statusId:Int
public var statusName:String
public var customerId:String?
public var createdDate:Date
public var updatedDate:Date
public var article:ArticleResponse
public var customer:CustomerArticleCustomerResponse
public var company:CustomerArticleCompanyResponse
public var paymentLog:[PaymentLogResponse] = []
public var responseStatus:ResponseStatus
required public init(){}
}
public class ArticleResponse : Codable
{
public var companyId:String
public var id:Int
public var name:String
public var articleTypeId:Int
public var Description:String
public var imageUrl:String
public var active:Bool
public var amount:Int
public var price:Double
public var currencyId:String
public var sortOrder:Int
public var updatedDate:Date
public var createdDate:Date
public var services:[ArticleServiceRelation] = []
public var serviceIds:[Int] = []
public var priceSign:String
public var vat:Double?
required public init(){}
}
public class ArticleServiceRelation : BaseModel
{
// @Required()
public var companyId:String?
public var id:Int
// @Required()
public var serviceId:Int?
// @Required()
public var articleId:Int?
required public init(){ super.init() }
private enum CodingKeys : String, CodingKey {
case companyId
case id
case serviceId
case articleId
}
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)
id = try container.decodeIfPresent(Int.self, forKey: .id)
serviceId = try container.decodeIfPresent(Int.self, forKey: .serviceId)
articleId = try container.decodeIfPresent(Int.self, forKey: .articleId)
}
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 id != nil { try container.encode(id, forKey: .id) }
if serviceId != nil { try container.encode(serviceId, forKey: .serviceId) }
if articleId != nil { try container.encode(articleId, forKey: .articleId) }
}
}
public class BaseModel : Codable
{
required public init(){}
}
public class CustomerArticleCustomerResponse : Codable
{
public var id:String
public var firstname:String
public var lastname:String
public var email:String
public var phone:String
required public init(){}
}
public class CustomerArticleCompanyResponse : Codable
{
public var id:String
public var name:String
public var logoType:String
public var email:String
public var phone:String
public var city:String
public var street1:String
public var zipCode:String
public var countryId:String
required public init(){}
}
public class PaymentLogResponse : Codable
{
public var id:Int
public var amount:Double?
public var amountCredited:Double?
public var currencyId:String
public var comments:String
public var created:Date
public var updated:Date
required public init(){}
}
Swift CreateCustomerArticleFromArticle DTOs
To override the Content-type in your clients, use the HTTP Accept Header, append the .xml suffix or ?format=xml
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /customerarticle/fromarticle HTTP/1.1
Host: testapi.bokamera.se
Accept: application/xml
Content-Type: application/xml
Content-Length: length
<CreateCustomerArticleFromArticle xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/BokaMera.API.ServiceModel.Dtos">
<ArticleId>0</ArticleId>
<CompanyId>00000000-0000-0000-0000-000000000000</CompanyId>
<Customer>
<CustomerId xmlns="http://schemas.datacontract.org/2004/07/BokaMera.API.ServiceModel.Dtos.Commons">00000000-0000-0000-0000-000000000000</CustomerId>
<Email xmlns="http://schemas.datacontract.org/2004/07/BokaMera.API.ServiceModel.Dtos.Commons">String</Email>
<Firstname xmlns="http://schemas.datacontract.org/2004/07/BokaMera.API.ServiceModel.Dtos.Commons">String</Firstname>
<Lastname xmlns="http://schemas.datacontract.org/2004/07/BokaMera.API.ServiceModel.Dtos.Commons">String</Lastname>
<PersonalIdentityNumber xmlns="http://schemas.datacontract.org/2004/07/BokaMera.API.ServiceModel.Dtos.Commons">String</PersonalIdentityNumber>
<Phone xmlns="http://schemas.datacontract.org/2004/07/BokaMera.API.ServiceModel.Dtos.Commons">String</Phone>
<SubscribedToNewsletter xmlns="http://schemas.datacontract.org/2004/07/BokaMera.API.ServiceModel.Dtos.Commons">false</SubscribedToNewsletter>
</Customer>
<InvoiceAddress>
<CorporateIdentityNumber>String</CorporateIdentityNumber>
<InvoiceAddress1>String</InvoiceAddress1>
<InvoiceAddress2>String</InvoiceAddress2>
<InvoiceCity>String</InvoiceCity>
<InvoiceCountryCode>String</InvoiceCountryCode>
<InvoicePostalCode>String</InvoicePostalCode>
</InvoiceAddress>
</CreateCustomerArticleFromArticle>
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length
<CustomerArticleResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/BokaMera.API.ServiceModel.Dtos">
<Article>
<Active>false</Active>
<Amount>0</Amount>
<ArticleTypeId>0</ArticleTypeId>
<CompanyId>00000000-0000-0000-0000-000000000000</CompanyId>
<CreatedDate>0001-01-01T00:00:00</CreatedDate>
<CurrencyId>String</CurrencyId>
<Description>String</Description>
<Id>0</Id>
<ImageUrl>String</ImageUrl>
<Name>String</Name>
<Price>0</Price>
<PriceSign>String</PriceSign>
<ServiceIds xmlns:d3p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d3p1:int>0</d3p1:int>
</ServiceIds>
<Services xmlns:d3p1="http://schemas.datacontract.org/2004/07/BokaMera.API.ServiceModel.Db">
<d3p1:ArticleServiceRelation>
<d3p1:ArticleId>0</d3p1:ArticleId>
<d3p1:CompanyId>00000000-0000-0000-0000-000000000000</d3p1:CompanyId>
<d3p1:Id>0</d3p1:Id>
<d3p1:ServiceId>0</d3p1:ServiceId>
</d3p1:ArticleServiceRelation>
</Services>
<SortOrder>0</SortOrder>
<UpdatedDate>0001-01-01T00:00:00</UpdatedDate>
<VAT>0</VAT>
</Article>
<ArticleId>0</ArticleId>
<Company>
<City>String</City>
<CountryId>String</CountryId>
<Email>String</Email>
<Id>00000000-0000-0000-0000-000000000000</Id>
<LogoType>String</LogoType>
<Name>String</Name>
<Phone>String</Phone>
<Street1>String</Street1>
<ZipCode>String</ZipCode>
</Company>
<CompanyId>00000000-0000-0000-0000-000000000000</CompanyId>
<CreatedDate>0001-01-01T00:00:00</CreatedDate>
<CurrencyId>String</CurrencyId>
<Customer>
<Email>String</Email>
<Firstname>String</Firstname>
<Id>00000000-0000-0000-0000-000000000000</Id>
<Lastname>String</Lastname>
<Phone>String</Phone>
</Customer>
<CustomerId>00000000-0000-0000-0000-000000000000</CustomerId>
<Id>0</Id>
<PaymentLog>
<PaymentLogResponse>
<Amount>0</Amount>
<AmountCredited>0</AmountCredited>
<Comments>String</Comments>
<Created>0001-01-01T00:00:00</Created>
<CurrencyId>String</CurrencyId>
<Id>0</Id>
<Updated>0001-01-01T00:00:00</Updated>
</PaymentLogResponse>
</PaymentLog>
<Price>0</Price>
<ResponseStatus xmlns:d2p1="http://schemas.servicestack.net/types">
<d2p1:ErrorCode>String</d2p1:ErrorCode>
<d2p1:Message>String</d2p1:Message>
<d2p1:StackTrace>String</d2p1:StackTrace>
<d2p1:Errors>
<d2p1:ResponseError>
<d2p1:ErrorCode>String</d2p1:ErrorCode>
<d2p1:FieldName>String</d2p1:FieldName>
<d2p1:Message>String</d2p1:Message>
<d2p1:Meta xmlns:d5p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d5p1:KeyValueOfstringstring>
<d5p1:Key>String</d5p1:Key>
<d5p1:Value>String</d5p1:Value>
</d5p1:KeyValueOfstringstring>
</d2p1:Meta>
</d2p1:ResponseError>
</d2p1:Errors>
<d2p1:Meta xmlns:d3p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d3p1:KeyValueOfstringstring>
<d3p1:Key>String</d3p1:Key>
<d3p1:Value>String</d3p1:Value>
</d3p1:KeyValueOfstringstring>
</d2p1:Meta>
</ResponseStatus>
<StatusId>0</StatusId>
<StatusName>String</StatusName>
<UpdatedDate>0001-01-01T00:00:00</UpdatedDate>
<VAT>0</VAT>
</CustomerArticleResponse>