Booster.Microservices

<back to all web services

StockDetailRequest

Requires Authentication
The following routes are available for this service:
GET/warranty/v1/article/{referenceId}
GET/warranty/v1/article/{referenceId}/serial/{serialNumber*}
import 'package:servicestack/servicestack.dart';

class BaseRequest<TResponse> implements IRequest, IConvertible
{
    String? sid;
    String? app;
    String? _os;
    String? _appVersion;
    String? _searchMethod;

    BaseRequest({this.sid,this.app,this._os,this._appVersion,this._searchMethod});
    BaseRequest.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        sid = json['sid'];
        app = json['app'];
        _os = json['_os'];
        _appVersion = json['_appVersion'];
        _searchMethod = json['_searchMethod'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'sid': sid,
        'app': app,
        '_os': _os,
        '_appVersion': _appVersion,
        '_searchMethod': _searchMethod
    };

    getTypeName() => "BaseRequest<$TResponse>";
    TypeContext? context = _ctx;
}

class BaseResponse implements IRespose, IConvertible
{
    String? _xmlns;
    String? _type;
    String? _source;
    String? _tstamp;
    String? _user;
    String? _env;
    String? _uri;
    String? _query;

    BaseResponse({this._xmlns,this._type,this._source,this._tstamp,this._user,this._env,this._uri,this._query});
    BaseResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        _xmlns = json['_xmlns'];
        _type = json['_type'];
        _source = json['_source'];
        _tstamp = json['_tstamp'];
        _user = json['_user'];
        _env = json['_env'];
        _uri = json['_uri'];
        _query = json['_query'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        '_xmlns': _xmlns,
        '_type': _type,
        '_source': _source,
        '_tstamp': _tstamp,
        '_user': _user,
        '_env': _env,
        '_uri': _uri,
        '_query': _query
    };

    getTypeName() => "BaseResponse";
    TypeContext? context = _ctx;
}

class Visual implements IConvertible
{
    String? asset;
    String? small;
    String? large;

    Visual({this.asset,this.small,this.large});
    Visual.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        asset = json['asset'];
        small = json['small'];
        large = json['large'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'asset': asset,
        'small': small,
        'large': large
    };

    getTypeName() => "Visual";
    TypeContext? context = _ctx;
}

class ArticleDetail implements IConvertible
{
    String? ref;
    String? serial;
    String? name;
    String? shortDesc;
    String? brand;
    Visual? visual;
    bool? isConsignment;

    ArticleDetail({this.ref,this.serial,this.name,this.shortDesc,this.brand,this.visual,this.isConsignment});
    ArticleDetail.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        ref = json['ref'];
        serial = json['serial'];
        name = json['name'];
        shortDesc = json['shortDesc'];
        brand = json['brand'];
        visual = JsonConverters.fromJson(json['visual'],'Visual',context!);
        isConsignment = json['isConsignment'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'ref': ref,
        'serial': serial,
        'name': name,
        'shortDesc': shortDesc,
        'brand': brand,
        'visual': JsonConverters.toJson(visual,'Visual',context!),
        'isConsignment': isConsignment
    };

    getTypeName() => "ArticleDetail";
    TypeContext? context = _ctx;
}

class StockDetailResponse extends BaseResponse implements IConvertible
{
    ArticleDetail? article;

    StockDetailResponse({this.article});
    StockDetailResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        super.fromMap(json);
        article = JsonConverters.fromJson(json['article'],'ArticleDetail',context!);
        return this;
    }

    Map<String, dynamic> toJson() => super.toJson()..addAll({
        'article': JsonConverters.toJson(article,'ArticleDetail',context!)
    });

    getTypeName() => "StockDetailResponse";
    TypeContext? context = _ctx;
}

class StockDetailRequest extends BaseRequest<StockDetailResponse> implements IConvertible
{
    String? referenceId;
    String? serialNumber;

    StockDetailRequest({this.referenceId,this.serialNumber});
    StockDetailRequest.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        super.fromMap(json);
        referenceId = json['referenceId'];
        serialNumber = json['serialNumber'];
        return this;
    }

    Map<String, dynamic> toJson() => super.toJson()..addAll({
        'referenceId': referenceId,
        'serialNumber': serialNumber
    });

    getTypeName() => "StockDetailRequest";
    TypeContext? context = _ctx;
}

TypeContext _ctx = TypeContext(library: 'qp_microservices_booster.richemont.com', types: <String, TypeInfo> {
    'BaseRequest<TResponse>': TypeInfo(TypeOf.Class, create:() => BaseRequest<TResponse>()),
    'BaseResponse': TypeInfo(TypeOf.Class, create:() => BaseResponse()),
    'Visual': TypeInfo(TypeOf.Class, create:() => Visual()),
    'ArticleDetail': TypeInfo(TypeOf.Class, create:() => ArticleDetail()),
    'StockDetailResponse': TypeInfo(TypeOf.Class, create:() => StockDetailResponse()),
    'StockDetailRequest': TypeInfo(TypeOf.Class, create:() => StockDetailRequest()),
});

Dart StockDetailRequest 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.

GET /warranty/v1/article/{referenceId} HTTP/1.1 
Host: qp-microservices-booster.richemont.com 
Accept: text/jsonl
HTTP/1.1 200 OK
Content-Type: text/jsonl
Content-Length: length

{"article":{"ref":"String","serial":"String","name":"String","shortDesc":"String","brand":"String","visual":{"asset":"String","small":"String","large":"String"},"isConsignment":false},"_xmlns":"String","_type":"String","_source":"String","_tstamp":"String","_user":"String","_env":"String","_uri":"String","_query":"String"}