| GET | /users/search |
|---|
import 'package:servicestack/servicestack.dart';
import 'dart:typed_data';
class UserSummary implements IConvertible
{
String? UserId;
String? UserName;
String? Email;
DateTime? CreatedUtc;
DateTime? LastActivityUtc;
String? FirstName;
String? LastName;
String? DisplayName;
UserSummary({this.UserId,this.UserName,this.Email,this.CreatedUtc,this.LastActivityUtc,this.FirstName,this.LastName,this.DisplayName});
UserSummary.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
UserId = json['UserId'];
UserName = json['UserName'];
Email = json['Email'];
CreatedUtc = JsonConverters.fromJson(json['CreatedUtc'],'DateTime',context!);
LastActivityUtc = JsonConverters.fromJson(json['LastActivityUtc'],'DateTime',context!);
FirstName = json['FirstName'];
LastName = json['LastName'];
DisplayName = json['DisplayName'];
return this;
}
Map<String, dynamic> toJson() => {
'UserId': UserId,
'UserName': UserName,
'Email': Email,
'CreatedUtc': JsonConverters.toJson(CreatedUtc,'DateTime',context!),
'LastActivityUtc': JsonConverters.toJson(LastActivityUtc,'DateTime',context!),
'FirstName': FirstName,
'LastName': LastName,
'DisplayName': DisplayName
};
getTypeName() => "UserSummary";
TypeContext? context = _ctx;
}
class SearchUsersResponse implements IConvertible
{
List<UserSummary>? Results = [];
int? Page;
int? PageSize;
int? Total;
ResponseStatus? ResponseStatus;
SearchUsersResponse({this.Results,this.Page,this.PageSize,this.Total,this.ResponseStatus});
SearchUsersResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
Results = JsonConverters.fromJson(json['Results'],'List<UserSummary>',context!);
Page = json['Page'];
PageSize = json['PageSize'];
Total = json['Total'];
ResponseStatus = JsonConverters.fromJson(json['ResponseStatus'],'ResponseStatus',context!);
return this;
}
Map<String, dynamic> toJson() => {
'Results': JsonConverters.toJson(Results,'List<UserSummary>',context!),
'Page': Page,
'PageSize': PageSize,
'Total': Total,
'ResponseStatus': JsonConverters.toJson(ResponseStatus,'ResponseStatus',context!)
};
getTypeName() => "SearchUsersResponse";
TypeContext? context = _ctx;
}
class SearchUsers implements IConvertible
{
String? Q;
int? Page;
int? PageSize;
SearchUsers({this.Q,this.Page,this.PageSize});
SearchUsers.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
Q = json['Q'];
Page = json['Page'];
PageSize = json['PageSize'];
return this;
}
Map<String, dynamic> toJson() => {
'Q': Q,
'Page': Page,
'PageSize': PageSize
};
getTypeName() => "SearchUsers";
TypeContext? context = _ctx;
}
TypeContext _ctx = TypeContext(library: 'api.dev.dynamics.trendsic.com', types: <String, TypeInfo> {
'UserSummary': TypeInfo(TypeOf.Class, create:() => UserSummary()),
'SearchUsersResponse': TypeInfo(TypeOf.Class, create:() => SearchUsersResponse()),
'List<UserSummary>': TypeInfo(TypeOf.Class, create:() => <UserSummary>[]),
'SearchUsers': TypeInfo(TypeOf.Class, create:() => SearchUsers()),
});
To override the Content-type in your clients, use the HTTP Accept Header, append the .csv suffix or ?format=csv
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
GET /users/search HTTP/1.1 Host: api.dev.dynamics.trendsic.com Accept: text/csv
HTTP/1.1 200 OK
Content-Type: text/csv
Content-Length: length
{"Results":[{"UserId":"00000000000000000000000000000000","UserName":"String","Email":"String","CreatedUtc":"0001-01-01T00:00:00.0000000","LastActivityUtc":"0001-01-01T00:00:00.0000000","FirstName":"String","LastName":"String","DisplayName":"String String"}],"Page":0,"PageSize":0,"Total":0,"ResponseStatus":{"ErrorCode":"String","Message":"String","StackTrace":"String","Errors":[{"ErrorCode":"String","FieldName":"String","Message":"String","Meta":{"String":"String"}}],"Meta":{"String":"String"}}}