All Verbs | /buy/{Id} | ||
---|---|---|---|
GET | /Buy/{Id} | ||
All Verbs | /buy/{Id}/{Quantity} | ||
GET | /Buy |
import 'package:servicestack/servicestack.dart';
enum SkuType
{
Product,
PerDev,
PerCore,
Site,
Support,
Training,
Register,
Payment,
}
// @flags()
class LicenseFeature
{
static const LicenseFeature None = const LicenseFeature._(0);
static const LicenseFeature Free = const LicenseFeature._(0);
static const LicenseFeature Premium = const LicenseFeature._(1);
static const LicenseFeature Text = const LicenseFeature._(2);
static const LicenseFeature Client = const LicenseFeature._(4);
static const LicenseFeature Common = const LicenseFeature._(8);
static const LicenseFeature Redis = const LicenseFeature._(16);
static const LicenseFeature RedisSku = const LicenseFeature._(18);
static const LicenseFeature OrmLite = const LicenseFeature._(32);
static const LicenseFeature OrmLiteSku = const LicenseFeature._(34);
static const LicenseFeature ServiceStack = const LicenseFeature._(64);
static const LicenseFeature Server = const LicenseFeature._(128);
static const LicenseFeature Razor = const LicenseFeature._(256);
static const LicenseFeature Admin = const LicenseFeature._(512);
static const LicenseFeature Aws = const LicenseFeature._(1024);
static const LicenseFeature AwsSku = const LicenseFeature._(1026);
static const LicenseFeature All = const LicenseFeature._(2047);
final int _value;
const LicenseFeature._(this._value);
int get value => _value;
static List<LicenseFeature> get values => const [None,Free,Premium,Text,Client,Common,Redis,RedisSku,OrmLite,OrmLiteSku,ServiceStack,Server,Razor,Admin,Aws,AwsSku,All];
}
enum LicenseType
{
Free,
FreeIndividual,
FreeOpenSource,
Indie,
Business,
Enterprise,
TextIndie,
TextBusiness,
OrmLiteIndie,
OrmLiteBusiness,
RedisIndie,
RedisBusiness,
AwsIndie,
AwsBusiness,
Trial,
Site,
TextSite,
RedisSite,
OrmLiteSite,
}
class Sku implements IConvertible
{
int? id;
int? productId;
SkuType? type;
LicenseFeature? feature;
String? code;
String? name;
String? notes;
// @ignore()
int? minQty;
int? maxQty;
int? price;
String? plan;
int? discountOff;
String? discountLabelOff;
int? actualPrice;
bool? isPlan;
bool? isRenewal;
int? subscriptionDurationDays;
int? expiryDurationDays;
int? trialPeriodDays;
int? supportQty;
int? coresQty;
DateTime? createdDate;
DateTime? modifiedDate;
LicenseType? licenseType;
bool? active;
Sku({this.id,this.productId,this.type,this.feature,this.code,this.name,this.notes,this.minQty,this.maxQty,this.price,this.plan,this.discountOff,this.discountLabelOff,this.actualPrice,this.isPlan,this.isRenewal,this.subscriptionDurationDays,this.expiryDurationDays,this.trialPeriodDays,this.supportQty,this.coresQty,this.createdDate,this.modifiedDate,this.licenseType,this.active});
Sku.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
id = json['id'];
productId = json['productId'];
type = JsonConverters.fromJson(json['type'],'SkuType',context!);
feature = JsonConverters.fromJson(json['feature'],'LicenseFeature',context!);
code = json['code'];
name = json['name'];
notes = json['notes'];
minQty = json['minQty'];
maxQty = json['maxQty'];
price = json['price'];
plan = json['plan'];
discountOff = json['discountOff'];
discountLabelOff = json['discountLabelOff'];
actualPrice = json['actualPrice'];
isPlan = json['isPlan'];
isRenewal = json['isRenewal'];
subscriptionDurationDays = json['subscriptionDurationDays'];
expiryDurationDays = json['expiryDurationDays'];
trialPeriodDays = json['trialPeriodDays'];
supportQty = json['supportQty'];
coresQty = json['coresQty'];
createdDate = JsonConverters.fromJson(json['createdDate'],'DateTime',context!);
modifiedDate = JsonConverters.fromJson(json['modifiedDate'],'DateTime',context!);
licenseType = JsonConverters.fromJson(json['licenseType'],'LicenseType',context!);
active = json['active'];
return this;
}
Map<String, dynamic> toJson() => {
'id': id,
'productId': productId,
'type': JsonConverters.toJson(type,'SkuType',context!),
'feature': JsonConverters.toJson(feature,'LicenseFeature',context!),
'code': code,
'name': name,
'notes': notes,
'minQty': minQty,
'maxQty': maxQty,
'price': price,
'plan': plan,
'discountOff': discountOff,
'discountLabelOff': discountLabelOff,
'actualPrice': actualPrice,
'isPlan': isPlan,
'isRenewal': isRenewal,
'subscriptionDurationDays': subscriptionDurationDays,
'expiryDurationDays': expiryDurationDays,
'trialPeriodDays': trialPeriodDays,
'supportQty': supportQty,
'coresQty': coresQty,
'createdDate': JsonConverters.toJson(createdDate,'DateTime',context!),
'modifiedDate': JsonConverters.toJson(modifiedDate,'DateTime',context!),
'licenseType': JsonConverters.toJson(licenseType,'LicenseType',context!),
'active': active
};
getTypeName() => "Sku";
TypeContext? context = _ctx;
}
class QuoteResponse implements IConvertible
{
int? skuId;
String? code;
int? customerId;
bool? modifyingExistingSubscription;
bool? changingSubscriptions;
bool? switchingLicensingModels;
bool? replacesExistingQuantity;
int? existingSubscriptionQuantity;
int? newSubscriptionQuantity;
String? unusedAmount;
bool? manualProrating;
int? unusedDays;
int? quantity;
int? minQuantity;
int? maxQuantity;
String? subtotal;
String? discountDescription;
String? discountReceived;
String? discount;
String? total;
String? expiryDate;
String? renewalDate;
bool? isReferrer;
ResponseStatus? responseStatus;
QuoteResponse({this.skuId,this.code,this.customerId,this.modifyingExistingSubscription,this.changingSubscriptions,this.switchingLicensingModels,this.replacesExistingQuantity,this.existingSubscriptionQuantity,this.newSubscriptionQuantity,this.unusedAmount,this.manualProrating,this.unusedDays,this.quantity,this.minQuantity,this.maxQuantity,this.subtotal,this.discountDescription,this.discountReceived,this.discount,this.total,this.expiryDate,this.renewalDate,this.isReferrer,this.responseStatus});
QuoteResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
skuId = json['skuId'];
code = json['code'];
customerId = json['customerId'];
modifyingExistingSubscription = json['modifyingExistingSubscription'];
changingSubscriptions = json['changingSubscriptions'];
switchingLicensingModels = json['switchingLicensingModels'];
replacesExistingQuantity = json['replacesExistingQuantity'];
existingSubscriptionQuantity = json['existingSubscriptionQuantity'];
newSubscriptionQuantity = json['newSubscriptionQuantity'];
unusedAmount = json['unusedAmount'];
manualProrating = json['manualProrating'];
unusedDays = json['unusedDays'];
quantity = json['quantity'];
minQuantity = json['minQuantity'];
maxQuantity = json['maxQuantity'];
subtotal = json['subtotal'];
discountDescription = json['discountDescription'];
discountReceived = json['discountReceived'];
discount = json['discount'];
total = json['total'];
expiryDate = json['expiryDate'];
renewalDate = json['renewalDate'];
isReferrer = json['isReferrer'];
responseStatus = JsonConverters.fromJson(json['responseStatus'],'ResponseStatus',context!);
return this;
}
Map<String, dynamic> toJson() => {
'skuId': skuId,
'code': code,
'customerId': customerId,
'modifyingExistingSubscription': modifyingExistingSubscription,
'changingSubscriptions': changingSubscriptions,
'switchingLicensingModels': switchingLicensingModels,
'replacesExistingQuantity': replacesExistingQuantity,
'existingSubscriptionQuantity': existingSubscriptionQuantity,
'newSubscriptionQuantity': newSubscriptionQuantity,
'unusedAmount': unusedAmount,
'manualProrating': manualProrating,
'unusedDays': unusedDays,
'quantity': quantity,
'minQuantity': minQuantity,
'maxQuantity': maxQuantity,
'subtotal': subtotal,
'discountDescription': discountDescription,
'discountReceived': discountReceived,
'discount': discount,
'total': total,
'expiryDate': expiryDate,
'renewalDate': renewalDate,
'isReferrer': isReferrer,
'responseStatus': JsonConverters.toJson(responseStatus,'ResponseStatus',context!)
};
getTypeName() => "QuoteResponse";
TypeContext? context = _ctx;
}
class BuyResponse implements IConvertible
{
String? coupon;
String? renewalRef;
String? upgradeRef;
Sku? sku;
QuoteResponse? quote;
ResponseStatus? responseStatus;
BuyResponse({this.coupon,this.renewalRef,this.upgradeRef,this.sku,this.quote,this.responseStatus});
BuyResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
coupon = json['coupon'];
renewalRef = json['renewalRef'];
upgradeRef = json['upgradeRef'];
sku = JsonConverters.fromJson(json['sku'],'Sku',context!);
quote = JsonConverters.fromJson(json['quote'],'QuoteResponse',context!);
responseStatus = JsonConverters.fromJson(json['responseStatus'],'ResponseStatus',context!);
return this;
}
Map<String, dynamic> toJson() => {
'coupon': coupon,
'renewalRef': renewalRef,
'upgradeRef': upgradeRef,
'sku': JsonConverters.toJson(sku,'Sku',context!),
'quote': JsonConverters.toJson(quote,'QuoteResponse',context!),
'responseStatus': JsonConverters.toJson(responseStatus,'ResponseStatus',context!)
};
getTypeName() => "BuyResponse";
TypeContext? context = _ctx;
}
class Buy implements IGet, IConvertible
{
String? id;
String? coupon;
int? quantity;
String? renewalRef;
String? upgradeRef;
Buy({this.id,this.coupon,this.quantity,this.renewalRef,this.upgradeRef});
Buy.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
id = json['id'];
coupon = json['coupon'];
quantity = json['quantity'];
renewalRef = json['renewalRef'];
upgradeRef = json['upgradeRef'];
return this;
}
Map<String, dynamic> toJson() => {
'id': id,
'coupon': coupon,
'quantity': quantity,
'renewalRef': renewalRef,
'upgradeRef': upgradeRef
};
getTypeName() => "Buy";
TypeContext? context = _ctx;
}
TypeContext _ctx = TypeContext(library: 'account.servicestack.net', types: <String, TypeInfo> {
'SkuType': TypeInfo(TypeOf.Enum, enumValues:SkuType.values),
'LicenseFeature': TypeInfo(TypeOf.Enum, enumValues:LicenseFeature.values),
'LicenseType': TypeInfo(TypeOf.Enum, enumValues:LicenseType.values),
'Sku': TypeInfo(TypeOf.Class, create:() => Sku()),
'QuoteResponse': TypeInfo(TypeOf.Class, create:() => QuoteResponse()),
'BuyResponse': TypeInfo(TypeOf.Class, create:() => BuyResponse()),
'Buy': TypeInfo(TypeOf.Class, create:() => Buy()),
});
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 /buy/{Id} HTTP/1.1
Host: account.servicestack.net
Accept: application/xml
Content-Type: application/xml
Content-Length: length
<Buy xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/MyApp.ServiceModel">
<Coupon>String</Coupon>
<Id>String</Id>
<Quantity>0</Quantity>
<RenewalRef>String</RenewalRef>
<UpgradeRef>String</UpgradeRef>
</Buy>
HTTP/1.1 200 OK Content-Type: application/xml Content-Length: length <BuyResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/MyApp.ServiceModel"> <Coupon>String</Coupon> <Quote> <ChangingSubscriptions>false</ChangingSubscriptions> <Code>String</Code> <CustomerId>0</CustomerId> <Discount>String</Discount> <DiscountDescription>String</DiscountDescription> <DiscountReceived>String</DiscountReceived> <ExistingSubscriptionQuantity>0</ExistingSubscriptionQuantity> <ExpiryDate>String</ExpiryDate> <IsReferrer>false</IsReferrer> <ManualProrating>false</ManualProrating> <MaxQuantity>0</MaxQuantity> <MinQuantity>0</MinQuantity> <ModifyingExistingSubscription>false</ModifyingExistingSubscription> <NewSubscriptionQuantity>0</NewSubscriptionQuantity> <Quantity>0</Quantity> <RenewalDate>String</RenewalDate> <ReplacesExistingQuantity>false</ReplacesExistingQuantity> <ResponseStatus xmlns:d3p1="http://schemas.servicestack.net/types"> <d3p1:ErrorCode>String</d3p1:ErrorCode> <d3p1:Message>String</d3p1:Message> <d3p1:StackTrace>String</d3p1:StackTrace> <d3p1:Errors> <d3p1:ResponseError> <d3p1:ErrorCode>String</d3p1:ErrorCode> <d3p1:FieldName>String</d3p1:FieldName> <d3p1:Message>String</d3p1:Message> <d3p1:Meta xmlns:d6p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays"> <d6p1:KeyValueOfstringstring> <d6p1:Key>String</d6p1:Key> <d6p1:Value>String</d6p1:Value> </d6p1:KeyValueOfstringstring> </d3p1:Meta> </d3p1:ResponseError> </d3p1:Errors> <d3p1:Meta xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays"> <d4p1:KeyValueOfstringstring> <d4p1:Key>String</d4p1:Key> <d4p1:Value>String</d4p1:Value> </d4p1:KeyValueOfstringstring> </d3p1:Meta> </ResponseStatus> <SkuId>0</SkuId> <Subtotal>String</Subtotal> <SwitchingLicensingModels>false</SwitchingLicensingModels> <Total>String</Total> <UnusedAmount>String</UnusedAmount> <UnusedDays>0</UnusedDays> </Quote> <RenewalRef>String</RenewalRef> <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> <Sku> <Active>false</Active> <Code>String</Code> <CoresQty>0</CoresQty> <CreatedDate>0001-01-01T00:00:00</CreatedDate> <DiscountLabelOff>String</DiscountLabelOff> <DiscountOff>0</DiscountOff> <ExpiryDurationDays>0</ExpiryDurationDays> <Feature>None</Feature> <Id>0</Id> <IsPlan>false</IsPlan> <IsRenewal>false</IsRenewal> <LicenseType>Free</LicenseType> <MaxQty>0</MaxQty> <ModifiedDate>0001-01-01T00:00:00</ModifiedDate> <Name>String</Name> <Notes>String</Notes> <Plan>String</Plan> <Price>0</Price> <ProductId>0</ProductId> <SubscriptionDurationDays>0</SubscriptionDurationDays> <SupportQty>0</SupportQty> <TrialPeriodDays>0</TrialPeriodDays> <Type>Product</Type> </Sku> <UpgradeRef>String</UpgradeRef> </BuyResponse>