DX STF Client API

<back to all web services

SearchItemDataNotification

Item Data Notification Requests

Item Data Notification

Requires Authentication
The following routes are available for this service:
POST/api/itemDataNotification/searchSearch 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 .other suffix or ?format=other

HTTP + OTHER

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/jsonl
Content-Type: text/jsonl
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/jsonl
Content-Length: length

{"continuationToken":"String","startIndex":0,"endIndex":0,"numberOfRecordsReturned":0,"totalNumberOfPages":0,"totalNumberOfRecords":0,"results":[{}]}