POST | /api/purchaseorders | Create a new PurchaseOrder |
---|
import Foundation
import ServiceStack
public class CreatePurchaseOrder : Codable
{
public var userId:String?
public var userEmail:String?
public var createdDate:Date?
public var void:Bool?
public var couponCode:String?
public var orderItems:[PurchaseOrderItemDto] = []
public var paymentType:String?
public var billingInformationDto:BillingInformationDto?
required public init(){}
}
public class PurchaseOrderItemDto : Codable
{
public var id:Int?
public var purchaseOrderId:Int?
public var productId:String?
public var productName:String?
public var quantity:Int?
public var price:Double?
public var discountDescription:String?
public var discountSource:String?
public var discount:Double?
public var createdDate:Date?
required public init(){}
}
public class BillingInformationDto : Codable
{
public var cardNumber:String?
public var cardType:String?
public var expireMonth:Int?
public var expireYear:Int?
public var cvv2:String?
public var firstName:String?
public var lastName:String?
public var city:String?
public var countryCode:String?
public var line1:String?
public var postalCode:String?
public var state:String?
required public init(){}
}
public class CreatePurchaseOrderResponse : Codable
{
public var message:String?
public var status:HttpStatusCode?
public var purchaseOrder:PurchaseOrderDto?
public var details:[Details] = []
required public init(){}
}
public class PurchaseOrderDto : Codable
{
public var id:Int?
public var userId:String?
public var createdDate:Date?
public var paymentType:String?
public var void:Bool?
public var paid:Bool?
public var transactionIdentifier:String?
public var couponCode:String?
public var orderItems:[PurchaseOrderItem] = []
public var payer:String?
public var billingAddressLine1:String?
public var billingAddressCity:String?
public var billingAddressState:String?
public var billingAddressPostalCode:String?
public var billingAddressCountryCode:String?
required public init(){}
}
public class PurchaseOrderItem : Codable
{
public var id:Int?
// @References(typeof(PurchaseOrder))
public var purchaseOrderId:Int?
// @References(typeof(Product))
public var productId:String?
public var productName:String?
public var quantity:Int?
public var price:Double?
public var discountDescription:String?
public var discountSource:String?
public var discount:Double?
public var createdDate:Date?
required public init(){}
}
public class Details : Codable
{
public var code:String?
public var field:String?
public var issue:String?
required public init(){}
}
Swift CreatePurchaseOrder DTOs
To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /api/purchaseorders HTTP/1.1
Host: accounts.dev.healthmonix.com
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length
{
userId: String,
userEmail: String,
createdDate: 0001-01-01,
void: False,
couponCode: String,
orderItems:
[
{
id: 0,
purchaseOrderId: 0,
productId: String,
productName: String,
quantity: 0,
price: 0,
discountDescription: String,
discountSource: String,
discount: 0,
createdDate: 0001-01-01
}
],
paymentType: String,
billingInformationDto:
{
cardNumber: String,
cardType: String,
expireMonth: 0,
expireYear: 0,
cvv2: String,
firstName: String,
lastName: String,
city: String,
countryCode: String,
line1: String,
postalCode: String,
state: String
}
}
HTTP/1.1 200 OK Content-Type: text/jsv Content-Length: length { message: String, status: Continue, purchaseOrder: { id: 0, userId: String, createdDate: 0001-01-01, paymentType: String, void: False, paid: False, transactionIdentifier: String, couponCode: String, orderItems: [ { id: 0, purchaseOrderId: 0, productId: String, productName: String, quantity: 0, price: 0, discountDescription: String, discountSource: String, discount: 0, createdDate: 0001-01-01 } ], payer: String, billingAddressLine1: String, billingAddressCity: String, billingAddressState: String, billingAddressPostalCode: String, billingAddressCountryCode: String }, details: [ { code: String, field: String, issue: String } ] }