| POST | /api/itemDataNotification/search | Search item data notification based on search parameters |
|---|
import 'package:servicestack/servicestack.dart';
enum ORDER
{
ASC,
DESC,
}
class SearchItemDataNotificationQuery implements ISearchItemDataNotification, IConvertible
{
String receiverGln = "";
String senderGln = "";
List<String> partnerGln = [];
int requestedPage = 0;
int numberOfRecordsPerPage = 0;
String continuationToken = "";
String categoryCode = "";
String identifier = "";
String tradeItemDescription = "";
String gtin = "";
String orderBy = "";
ORDER order;
SearchItemDataNotificationQuery({this.receiverGln,this.senderGln,this.partnerGln,this.requestedPage,this.numberOfRecordsPerPage,this.continuationToken,this.categoryCode,this.identifier,this.tradeItemDescription,this.gtin,this.orderBy,this.order});
SearchItemDataNotificationQuery.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
receiverGln = json['receiverGln'];
senderGln = json['senderGln'];
partnerGln = JsonConverters.fromJson(json['partnerGln'],'List<String>',context!);
requestedPage = json['requestedPage'];
numberOfRecordsPerPage = json['numberOfRecordsPerPage'];
continuationToken = json['continuationToken'];
categoryCode = json['categoryCode'];
identifier = json['identifier'];
tradeItemDescription = json['tradeItemDescription'];
gtin = json['gtin'];
orderBy = json['orderBy'];
order = JsonConverters.fromJson(json['order'],'ORDER',context!);
return this;
}
Map<String, dynamic> toJson() => {
'receiverGln': receiverGln,
'senderGln': senderGln,
'partnerGln': JsonConverters.toJson(partnerGln,'List<String>',context!),
'requestedPage': requestedPage,
'numberOfRecordsPerPage': numberOfRecordsPerPage,
'continuationToken': continuationToken,
'categoryCode': categoryCode,
'identifier': identifier,
'tradeItemDescription': tradeItemDescription,
'gtin': gtin,
'orderBy': orderBy,
'order': JsonConverters.toJson(order,'ORDER',context!)
};
getTypeName() => "SearchItemDataNotificationQuery";
TypeContext? context = _ctx;
}
/**
* Item Data Notification
*/
// @Api(Description="Item Data Notification")
// @ApiResponse(Description="Paged ItemDataNotification data", IsDefaultResponse=true, ResponseType=typeof(0, Culture=neutral, PublicKeyToken=null]]), StatusCode=200)
class SearchItemDataNotification implements IConvertible
{
/**
* Search query
*/
// @ApiMember(Description="Search query", ParameterType="model")
SearchItemDataNotificationQuery query;
SearchItemDataNotification({this.query});
SearchItemDataNotification.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
query = JsonConverters.fromJson(json['query'],'SearchItemDataNotificationQuery',context!);
return this;
}
Map<String, dynamic> toJson() => {
'query': JsonConverters.toJson(query,'SearchItemDataNotificationQuery',context!)
};
getTypeName() => "SearchItemDataNotification";
TypeContext? context = _ctx;
}
class PagedQueryResult<T> implements IConvertible
{
int startIndex = 0;
int endIndex = 0;
int numberOfRecordsReturned = 0;
int totalNumberOfPages = 0;
int totalNumberOfRecords = 0;
List<ResultItem<ClaimMessage>> results = [];
PagedQueryResult({this.startIndex,this.endIndex,this.numberOfRecordsReturned,this.totalNumberOfPages,this.totalNumberOfRecords,this.results});
PagedQueryResult.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
startIndex = json['startIndex'];
endIndex = json['endIndex'];
numberOfRecordsReturned = json['numberOfRecordsReturned'];
totalNumberOfPages = json['totalNumberOfPages'];
totalNumberOfRecords = json['totalNumberOfRecords'];
results = JsonConverters.fromJson(json['results'],'List<ResultItem<ClaimMessage>>',context!);
return this;
}
Map<String, dynamic> toJson() => {
'startIndex': startIndex,
'endIndex': endIndex,
'numberOfRecordsReturned': numberOfRecordsReturned,
'totalNumberOfPages': totalNumberOfPages,
'totalNumberOfRecords': totalNumberOfRecords,
'results': JsonConverters.toJson(results,'List<ResultItem<ClaimMessage>>',context!)
};
getTypeName() => "PagedQueryResult<$T>";
TypeContext? context = _ctx;
}
class PagedQueryResponseWithToken<T> extends PagedQueryResult<ResultItem<InvoiceMessage>> implements IConvertible
{
String continuationToken = "";
PagedQueryResponseWithToken({this.continuationToken});
PagedQueryResponseWithToken.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
super.fromMap(json);
continuationToken = json['continuationToken'];
return this;
}
Map<String, dynamic> toJson() => super.toJson()..addAll({
'continuationToken': continuationToken
});
getTypeName() => "PagedQueryResponseWithToken<$T>";
TypeContext? context = _ctx;
}
TypeContext _ctx = TypeContext(library: 'stf_api_uat.data_xchange.co.za', types: <String, TypeInfo> {
'ORDER': TypeInfo(TypeOf.Enum, enumValues:ORDER.values),
'SearchItemDataNotificationQuery': TypeInfo(TypeOf.Class, create:() => SearchItemDataNotificationQuery()),
'SearchItemDataNotification': TypeInfo(TypeOf.Class, create:() => SearchItemDataNotification()),
'PagedQueryResult<T>': TypeInfo(TypeOf.Class, create:() => PagedQueryResult<T>()),
'List<ResultItem<ClaimMessage>>': TypeInfo(TypeOf.Class, create:() => <ResultItem<ClaimMessage>>[]),
'ResultItem<ClaimMessage>': TypeInfo(TypeOf.Class, create:() => ResultItem<ClaimMessage>()),
'ClaimMessage': TypeInfo(TypeOf.Class, create:() => ClaimMessage()),
'PagedQueryResponseWithToken<T>': TypeInfo(TypeOf.Class, create:() => PagedQueryResponseWithToken<T>()),
});
Dart SearchItemDataNotification 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/itemDataNotification/search HTTP/1.1
Host: stf-api-uat.data-xchange.co.za
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length
{
query:
{
receiverGln: String,
senderGln: String,
partnerGln:
[
String
],
requestedPage: 0,
numberOfRecordsPerPage: 0,
continuationToken: String,
categoryCode: String,
identifier: String,
tradeItemDescription: String,
gtin: String,
orderBy: String,
order: ASC
}
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length
{
continuationToken: String,
startIndex: 0,
endIndex: 0,
numberOfRecordsReturned: 0,
totalNumberOfPages: 0,
totalNumberOfRecords: 0,
results:
[
{
}
]
}