POST | /rebatecodes/fromarticle | Create RebateCode. | Create RebateCode. |
---|
import Foundation
import ServiceStack
// @ApiResponse(Description="You were unauthorized to call this service", StatusCode=401)
public class CreateArticleRebateCode : ICompany, 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 infomration
*/
// @ApiMember(Description="Customer infomration")
public var customer:CustomerToHandle
/**
* Promo code Receiver information
*/
// @ApiMember(Description="Promo code Receiver information")
public var receiver:PromoCodeReceiver
required public init(){}
}
public class CustomerToHandle : 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
required public init(){}
}
public class PromoCodeReceiver : Codable
{
public var customerId:String?
public var firstname:String
public var lastname:String
public var email:String
public var receiverMessage:String
required public init(){}
}
public class RebateCodeResponse : Codable
{
public var id:Int
public var companyId:String?
public var validFrom:Date
public var validTo:Date
/**
* If the price is only valid for specific days in week add a comma separated list of which days this day price belongs to, 1 = Monday .. 7 = Sunday. All old days connected will be removed on update.
*/
// @ApiMember(Description="If the price is only valid for specific days in week add a comma separated list of which days this day price belongs to, 1 = Monday .. 7 = Sunday. All old days connected will be removed on update.")
@TimeSpan public var fromTime:TimeInterval
/**
* If the price is only valid for a specific time span during a time of day enter the FromTime and ToTime parameters.
*/
// @ApiMember(Description="If the price is only valid for a specific time span during a time of day enter the FromTime and ToTime parameters.")
@TimeSpan public var toTime:TimeInterval
public var createdBy:String
public var created:Date
public var updatedBy:String
public var updated:Date
public var personalNote:String
public var rebateCodeSign:String
public var rebateCodeValue:Int
public var rebateCodeTypeId:Int
public var name:String
public var rebateCodeStatusId:Int
public var statusName:String
public var maxNumberOfUses:Int
public var maxNumberOfUsesPerCustomer:Int
public var numberOfUsesUsed:Int
public var daysOfWeek:[DaysOfWeekResponse] = []
public var services:[RebateCodeServiceResponse] = []
public var article:ArticleResponse
public var transactions:[RebateCodeTransactionQueryResponse] = []
public var remainingAmount:Double?
public var remainingUsage:Int?
public var customers:[RebateCodeCustomerResponse] = []
public var responseStatus:ResponseStatus
public var paymentReceived:Bool
public var rebateCodeCurrencySign:String
public var activeByStatus:Bool
public var priceSign:String
public var rebateCodeTypeName:String
required public init(){}
}
public class DaysOfWeekResponse : Codable
{
public var id:Int
public var dayOfWeek:String
public var dayOfWeekTranslation:String
public var dayOfWeekActive:Bool?
public var dayOfWeekSortOrder:Int16?
required public init(){}
}
public class RebateCodeServiceResponse : Codable
{
public var id:Int
public var name:String
public var Description:String
public var active:Bool
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 updatedDate:Date
public var createdDate:Date
public var services:[ArticleServiceRelation] = []
public var serviceIds:[Int] = []
public var priceSign:String
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 RebateCodeTransactionQueryResponse : Codable
{
public var id:Int
public var companyId:String
public var note:String
public var rebateCodeId:Int
public var rebateCodeSign:String
public var rebateCodeTypeId:Int?
public var rebateCodeTypeName:String
public var amount:Double
public var bookingId:Int?
public var updatedDate:Date
public var createdDate:Date
public var service:RebateCodeServiceResponse
public var customer:RebateCodeCustomerResponse
public var priceSign:String
required public init(){}
}
public class RebateCodeCustomerResponse : Codable
{
public var id:String
public var firstname:String
public var lastname:String
public var email:String
public var phone:String
public var imageUrl:String
required public init(){}
}
Swift CreateArticleRebateCode 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 /rebatecodes/fromarticle HTTP/1.1
Host: api.bokamera.se
Accept: application/xml
Content-Type: application/xml
Content-Length: length
<CreateArticleRebateCode 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>00000000-0000-0000-0000-000000000000</CustomerId>
<Email>String</Email>
<Firstname>String</Firstname>
<Lastname>String</Lastname>
<Phone>String</Phone>
<SubscribedToNewsletter>false</SubscribedToNewsletter>
</Customer>
<Receiver>
<CustomerId>00000000-0000-0000-0000-000000000000</CustomerId>
<Email>String</Email>
<Firstname>String</Firstname>
<Lastname>String</Lastname>
<ReceiverMessage>String</ReceiverMessage>
</Receiver>
</CreateArticleRebateCode>
HTTP/1.1 200 OK Content-Type: application/xml Content-Length: length <RebateCodeResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/BokaMera.API.ServiceModel.Dtos"> <ActiveByStatus>false</ActiveByStatus> <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> <UpdatedDate>0001-01-01T00:00:00</UpdatedDate> </Article> <CompanyId>00000000-0000-0000-0000-000000000000</CompanyId> <Created>0001-01-01T00:00:00</Created> <CreatedBy>String</CreatedBy> <Customers> <RebateCodeCustomerResponse> <Email>String</Email> <Firstname>String</Firstname> <Id>00000000-0000-0000-0000-000000000000</Id> <ImageUrl>String</ImageUrl> <Lastname>String</Lastname> <Phone>String</Phone> </RebateCodeCustomerResponse> </Customers> <DaysOfWeek> <DaysOfWeekResponse> <DayOfWeek>String</DayOfWeek> <DayOfWeekActive>false</DayOfWeekActive> <DayOfWeekSortOrder>0</DayOfWeekSortOrder> <DayOfWeekTranslation>String</DayOfWeekTranslation> <Id>0</Id> </DaysOfWeekResponse> </DaysOfWeek> <FromTime>PT0S</FromTime> <Id>0</Id> <MaxNumberOfUses>0</MaxNumberOfUses> <MaxNumberOfUsesPerCustomer>0</MaxNumberOfUsesPerCustomer> <Name>String</Name> <NumberOfUsesUsed>0</NumberOfUsesUsed> <PaymentReceived>false</PaymentReceived> <PersonalNote>String</PersonalNote> <PriceSign>String</PriceSign> <RebateCodeCurrencySign>String</RebateCodeCurrencySign> <RebateCodeSign>String</RebateCodeSign> <RebateCodeStatusId>0</RebateCodeStatusId> <RebateCodeTypeId>0</RebateCodeTypeId> <RebateCodeTypeName>String</RebateCodeTypeName> <RebateCodeValue>0</RebateCodeValue> <RemainingAmount>0</RemainingAmount> <RemainingUsage>0</RemainingUsage> <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> <Services> <RebateCodeServiceResponse> <Active>false</Active> <Description>String</Description> <Id>0</Id> <Name>String</Name> </RebateCodeServiceResponse> </Services> <StatusName>String</StatusName> <ToTime>PT0S</ToTime> <Transactions> <RebateCodeTransactionQueryResponse> <Amount>0</Amount> <BookingId>0</BookingId> <CompanyId>00000000-0000-0000-0000-000000000000</CompanyId> <CreatedDate>0001-01-01T00:00:00</CreatedDate> <Customer> <Email>String</Email> <Firstname>String</Firstname> <Id>00000000-0000-0000-0000-000000000000</Id> <ImageUrl>String</ImageUrl> <Lastname>String</Lastname> <Phone>String</Phone> </Customer> <Id>0</Id> <Note>String</Note> <PriceSign>String</PriceSign> <RebateCodeId>0</RebateCodeId> <RebateCodeSign>String</RebateCodeSign> <RebateCodeTypeId>0</RebateCodeTypeId> <RebateCodeTypeName>String</RebateCodeTypeName> <Service> <Active>false</Active> <Description>String</Description> <Id>0</Id> <Name>String</Name> </Service> <UpdatedDate>0001-01-01T00:00:00</UpdatedDate> </RebateCodeTransactionQueryResponse> </Transactions> <Updated>0001-01-01T00:00:00</Updated> <UpdatedBy>String</UpdatedBy> <ValidFrom>0001-01-01T00:00:00</ValidFrom> <ValidTo>0001-01-01T00:00:00</ValidTo> </RebateCodeResponse>