| Requires any of the roles: | Agent, Administrator, Agent, Administrator, Agent, Administrator, Agent, Administrator |
| GET | /v1/Products/{UserID} | ||
|---|---|---|---|
| GET,POST,PUT,DELETE,OPTIONS | /v1/Products/ |
import 'package:servicestack/servicestack.dart';
import 'dart:typed_data';
class Product implements IConvertible
{
int? ID;
String? ProductName;
int? ProductTypeID;
double? UnitPrice;
String? Description;
String? ImageURL;
String? ImageKey;
String? SpecialSaleText;
double? ShipPrice;
double? SalePrice;
String? UID;
int? ProductCategory;
int? ProductSubCategory;
double? ProductWeight;
double? FreightMarkupPercent;
double? FreightMarkUpAmount;
double? PointValue;
bool? IsActive;
String? StripeProductId;
Product({this.ID,this.ProductName,this.ProductTypeID,this.UnitPrice,this.Description,this.ImageURL,this.ImageKey,this.SpecialSaleText,this.ShipPrice,this.SalePrice,this.UID,this.ProductCategory,this.ProductSubCategory,this.ProductWeight,this.FreightMarkupPercent,this.FreightMarkUpAmount,this.PointValue,this.IsActive,this.StripeProductId});
Product.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
ID = json['ID'];
ProductName = json['ProductName'];
ProductTypeID = json['ProductTypeID'];
UnitPrice = JsonConverters.toDouble(json['UnitPrice']);
Description = json['Description'];
ImageURL = json['ImageURL'];
ImageKey = json['ImageKey'];
SpecialSaleText = json['SpecialSaleText'];
ShipPrice = JsonConverters.toDouble(json['ShipPrice']);
SalePrice = JsonConverters.toDouble(json['SalePrice']);
UID = json['UID'];
ProductCategory = json['ProductCategory'];
ProductSubCategory = json['ProductSubCategory'];
ProductWeight = JsonConverters.toDouble(json['ProductWeight']);
FreightMarkupPercent = JsonConverters.toDouble(json['FreightMarkupPercent']);
FreightMarkUpAmount = JsonConverters.toDouble(json['FreightMarkUpAmount']);
PointValue = JsonConverters.toDouble(json['PointValue']);
IsActive = json['IsActive'];
StripeProductId = json['StripeProductId'];
return this;
}
Map<String, dynamic> toJson() => {
'ID': ID,
'ProductName': ProductName,
'ProductTypeID': ProductTypeID,
'UnitPrice': UnitPrice,
'Description': Description,
'ImageURL': ImageURL,
'ImageKey': ImageKey,
'SpecialSaleText': SpecialSaleText,
'ShipPrice': ShipPrice,
'SalePrice': SalePrice,
'UID': UID,
'ProductCategory': ProductCategory,
'ProductSubCategory': ProductSubCategory,
'ProductWeight': ProductWeight,
'FreightMarkupPercent': FreightMarkupPercent,
'FreightMarkUpAmount': FreightMarkUpAmount,
'PointValue': PointValue,
'IsActive': IsActive,
'StripeProductId': StripeProductId
};
getTypeName() => "Product";
TypeContext? context = _ctx;
}
class ProductsResponse implements IConvertible
{
ResponseStatus? ResponseStatus;
List<Product>? Products = [];
ProductsResponse({this.ResponseStatus,this.Products});
ProductsResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
ResponseStatus = JsonConverters.fromJson(json['ResponseStatus'],'ResponseStatus',context!);
Products = JsonConverters.fromJson(json['Products'],'List<Product>',context!);
return this;
}
Map<String, dynamic> toJson() => {
'ResponseStatus': JsonConverters.toJson(ResponseStatus,'ResponseStatus',context!),
'Products': JsonConverters.toJson(Products,'List<Product>',context!)
};
getTypeName() => "ProductsResponse";
TypeContext? context = _ctx;
}
class ProductsRequest implements IConvertible
{
String? UserID;
List<Product>? Products = [];
ProductsRequest({this.UserID,this.Products});
ProductsRequest.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
UserID = json['UserID'];
Products = JsonConverters.fromJson(json['Products'],'List<Product>',context!);
return this;
}
Map<String, dynamic> toJson() => {
'UserID': UserID,
'Products': JsonConverters.toJson(Products,'List<Product>',context!)
};
getTypeName() => "ProductsRequest";
TypeContext? context = _ctx;
}
TypeContext _ctx = TypeContext(library: 'api.dev.dynamics.trendsic.com', types: <String, TypeInfo> {
'Product': TypeInfo(TypeOf.Class, create:() => Product()),
'ProductsResponse': TypeInfo(TypeOf.Class, create:() => ProductsResponse()),
'List<Product>': TypeInfo(TypeOf.Class, create:() => <Product>[]),
'ProductsRequest': TypeInfo(TypeOf.Class, create:() => ProductsRequest()),
});
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 /v1/Products/ HTTP/1.1
Host: api.dev.dynamics.trendsic.com
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length
{
UserID: 00000000000000000000000000000000,
Products:
[
{
ID: 0,
ProductName: String,
ProductTypeID: 0,
UnitPrice: 0,
Description: String,
ImageURL: String,
ImageKey: String,
SpecialSaleText: String,
ShipPrice: 0,
SalePrice: 0,
UID: 00000000000000000000000000000000,
ProductCategory: 0,
ProductSubCategory: 0,
ProductWeight: 0,
FreightMarkupPercent: 0,
FreightMarkUpAmount: 0,
PointValue: 0,
IsActive: False,
StripeProductId: String
}
]
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length
{
ResponseStatus:
{
ErrorCode: String,
Message: String,
StackTrace: String,
Errors:
[
{
ErrorCode: String,
FieldName: String,
Message: String,
Meta:
{
String: String
}
}
],
Meta:
{
String: String
}
},
Products:
[
{
ID: 0,
ProductName: String,
ProductTypeID: 0,
UnitPrice: 0,
Description: String,
ImageURL: String,
ImageKey: String,
SpecialSaleText: String,
ShipPrice: 0,
SalePrice: 0,
UID: 00000000000000000000000000000000,
ProductCategory: 0,
ProductSubCategory: 0,
ProductWeight: 0,
FreightMarkupPercent: 0,
FreightMarkUpAmount: 0,
PointValue: 0,
IsActive: False,
StripeProductId: String
}
]
}