BokaMera.API.Host

<back to all web services

CreateCustomerArticleFromArticle

The following routes are available for this service:
POST/customerarticle/fromarticleCreate 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 .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 /customerarticle/fromarticle HTTP/1.1 
Host: testapi.bokamera.se 
Accept: application/json
Content-Type: application/json
Content-Length: length

{"CompanyId":"00000000-0000-0000-0000-000000000000","ArticleId":0,"Customer":{"CustomerId":"00000000-0000-0000-0000-000000000000","Firstname":"String","Lastname":"String","Email":"String","Phone":"String","SubscribedToNewsletter":false,"PersonalIdentityNumber":"String"},"InvoiceAddress":{"CorporateIdentityNumber":"String","InvoiceAddress1":"String","InvoiceAddress2":"String","InvoiceCity":"String","InvoicePostalCode":"String","InvoiceCountryCode":"String"}}
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: length

{"Id":0,"ArticleId":0,"Price":0,"VAT":0,"CurrencyId":"String","StatusId":0,"StatusName":"String","CustomerId":"00000000-0000-0000-0000-000000000000","Article":{"Id":0,"Name":"String","ArticleTypeId":0,"Description":"String","ImageUrl":"String","Active":false,"Amount":0,"Price":0,"CurrencyId":"String","SortOrder":0,"Services":[{"Id":0,"ServiceId":0,"ArticleId":0}],"ServiceIds":[0],"PriceSign":"String","VAT":0},"Customer":{"Firstname":"String","Lastname":"String","Email":"String","Phone":"String"},"Company":{"Name":"String","LogoType":"String","Email":"String","Phone":"String","City":"String","Street1":"String","ZipCode":"String","CountryId":"String"},"PaymentLog":[{"Id":0,"Amount":0,"AmountCredited":0,"CurrencyId":"String","Comments":"String"}],"ResponseStatus":{"ErrorCode":"String","Message":"String","StackTrace":"String","Errors":[{"ErrorCode":"String","FieldName":"String","Message":"String","Meta":{"String":"String"}}],"Meta":{"String":"String"}}}