| Requires the role: | Admin | Requires the permission: | ReadData |
| POST | /Support/CustomerSearch |
|---|
import 'package:servicestack/servicestack.dart';
class SupportCustomerHit implements IConvertible
{
String? phone;
String? email;
String? name;
int? ticketCount;
int? ownerCardCount;
int? webshopOrderCount;
int? giftCardCount;
int? sharedLinkCount;
DateTime? lastActivityUtc;
List<String>? sellers;
String? matchedBy;
SupportCustomerHit({this.phone,this.email,this.name,this.ticketCount,this.ownerCardCount,this.webshopOrderCount,this.giftCardCount,this.sharedLinkCount,this.lastActivityUtc,this.sellers,this.matchedBy});
SupportCustomerHit.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
phone = json['phone'];
email = json['email'];
name = json['name'];
ticketCount = json['ticketCount'];
ownerCardCount = json['ownerCardCount'];
webshopOrderCount = json['webshopOrderCount'];
giftCardCount = json['giftCardCount'];
sharedLinkCount = json['sharedLinkCount'];
lastActivityUtc = JsonConverters.fromJson(json['lastActivityUtc'],'DateTime',context!);
sellers = JsonConverters.fromJson(json['sellers'],'List<String>',context!);
matchedBy = json['matchedBy'];
return this;
}
Map<String, dynamic> toJson() => {
'phone': phone,
'email': email,
'name': name,
'ticketCount': ticketCount,
'ownerCardCount': ownerCardCount,
'webshopOrderCount': webshopOrderCount,
'giftCardCount': giftCardCount,
'sharedLinkCount': sharedLinkCount,
'lastActivityUtc': JsonConverters.toJson(lastActivityUtc,'DateTime',context!),
'sellers': JsonConverters.toJson(sellers,'List<String>',context!),
'matchedBy': matchedBy
};
getTypeName() => "SupportCustomerHit";
TypeContext? context = _ctx;
}
class SupportCustomerSearchResult implements IConvertible
{
List<SupportCustomerHit>? hits;
String? termKind;
String? normalizedTerm;
List<String>? warnings;
int? statusCode;
String? message;
SupportCustomerSearchResult({this.hits,this.termKind,this.normalizedTerm,this.warnings,this.statusCode,this.message});
SupportCustomerSearchResult.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
hits = JsonConverters.fromJson(json['hits'],'List<SupportCustomerHit>',context!);
termKind = json['termKind'];
normalizedTerm = json['normalizedTerm'];
warnings = JsonConverters.fromJson(json['warnings'],'List<String>',context!);
statusCode = json['statusCode'];
message = json['message'];
return this;
}
Map<String, dynamic> toJson() => {
'hits': JsonConverters.toJson(hits,'List<SupportCustomerHit>',context!),
'termKind': termKind,
'normalizedTerm': normalizedTerm,
'warnings': JsonConverters.toJson(warnings,'List<String>',context!),
'statusCode': statusCode,
'message': message
};
getTypeName() => "SupportCustomerSearchResult";
TypeContext? context = _ctx;
}
class SupportCustomerSearchRequest implements IConvertible
{
String? term;
int? limit;
SupportCustomerSearchRequest({this.term,this.limit});
SupportCustomerSearchRequest.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
term = json['term'];
limit = json['limit'];
return this;
}
Map<String, dynamic> toJson() => {
'term': term,
'limit': limit
};
getTypeName() => "SupportCustomerSearchRequest";
TypeContext? context = _ctx;
}
TypeContext _ctx = TypeContext(library: 'stubbur_app.azurewebsites.net', types: <String, TypeInfo> {
'SupportCustomerHit': TypeInfo(TypeOf.Class, create:() => SupportCustomerHit()),
'SupportCustomerSearchResult': TypeInfo(TypeOf.Class, create:() => SupportCustomerSearchResult()),
'List<SupportCustomerHit>': TypeInfo(TypeOf.Class, create:() => <SupportCustomerHit>[]),
'SupportCustomerSearchRequest': TypeInfo(TypeOf.Class, create:() => SupportCustomerSearchRequest()),
});
Dart SupportCustomerSearchRequest 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 /Support/CustomerSearch HTTP/1.1
Host: stubbur-app.azurewebsites.net
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length
{
term: String,
limit: 0
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length
{
hits:
[
{
phone: String,
email: String,
name: String,
ticketCount: 0,
ownerCardCount: 0,
webshopOrderCount: 0,
giftCardCount: 0,
sharedLinkCount: 0,
lastActivityUtc: 0001-01-01,
sellers:
[
String
],
matchedBy: String
}
],
termKind: String,
normalizedTerm: String,
warnings:
[
String
],
statusCode: 0,
message: String
}