| GET | /api/v1/users |
|---|
import 'package:servicestack/servicestack.dart';
// @DataContract
class ResponseStatus implements IMeta, IConvertible
{
// @DataMember(Order=1)
int? statusCode;
// @DataMember(Order=2)
String? message;
// @DataMember(Order=3)
String? stackTrace;
// @DataMember(Order=4)
List<ResponseError>? errors;
// @DataMember(Order=5)
Map<String,String?>? meta;
ResponseStatus({this.statusCode,this.message,this.stackTrace,this.errors,this.meta});
ResponseStatus.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
statusCode = json['statusCode'];
message = json['message'];
stackTrace = json['stackTrace'];
errors = JsonConverters.fromJson(json['errors'],'List<ResponseError>',context!);
meta = JsonConverters.toStringMap(json['meta']);
return this;
}
Map<String, dynamic> toJson() => {
'statusCode': statusCode,
'message': message,
'stackTrace': stackTrace,
'errors': JsonConverters.toJson(errors,'List<ResponseError>',context!),
'meta': meta
};
getTypeName() => "ResponseStatus";
TypeContext? context = _ctx;
}
class BaseResponse implements IConvertible
{
ResponseStatus? responseStatus;
BaseResponse({this.responseStatus});
BaseResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
responseStatus = JsonConverters.fromJson(json['responseStatus'],'ResponseStatus',context!);
return this;
}
Map<String, dynamic> toJson() => {
'responseStatus': JsonConverters.toJson(responseStatus,'ResponseStatus',context!)
};
getTypeName() => "BaseResponse";
TypeContext? context = _ctx;
}
class MUser implements IConvertible
{
String? id;
String? email;
String? firstName;
String? lastName;
String? country;
String? language;
String? birthDate;
String? address;
String? address2;
String? city;
String? state;
String? zipCode;
String? phoneNumber;
bool? emailConfirmed;
String? healthId;
String? memberId;
String? subscription;
MUser({this.id,this.email,this.firstName,this.lastName,this.country,this.language,this.birthDate,this.address,this.address2,this.city,this.state,this.zipCode,this.phoneNumber,this.emailConfirmed,this.healthId,this.memberId,this.subscription});
MUser.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
id = json['id'];
email = json['email'];
firstName = json['firstName'];
lastName = json['lastName'];
country = json['country'];
language = json['language'];
birthDate = json['birthDate'];
address = json['address'];
address2 = json['address2'];
city = json['city'];
state = json['state'];
zipCode = json['zipCode'];
phoneNumber = json['phoneNumber'];
emailConfirmed = json['emailConfirmed'];
healthId = json['healthId'];
memberId = json['memberId'];
subscription = json['subscription'];
return this;
}
Map<String, dynamic> toJson() => {
'id': id,
'email': email,
'firstName': firstName,
'lastName': lastName,
'country': country,
'language': language,
'birthDate': birthDate,
'address': address,
'address2': address2,
'city': city,
'state': state,
'zipCode': zipCode,
'phoneNumber': phoneNumber,
'emailConfirmed': emailConfirmed,
'healthId': healthId,
'memberId': memberId,
'subscription': subscription
};
getTypeName() => "MUser";
TypeContext? context = _ctx;
}
class GetUsersResponse extends BaseResponse implements IConvertible
{
List<MUser>? users;
GetUsersResponse({this.users});
GetUsersResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
super.fromMap(json);
users = JsonConverters.fromJson(json['users'],'List<MUser>',context!);
return this;
}
Map<String, dynamic> toJson() => super.toJson()..addAll({
'users': JsonConverters.toJson(users,'List<MUser>',context!)
});
getTypeName() => "GetUsersResponse";
TypeContext? context = _ctx;
}
class GetUsers implements IConvertible
{
GetUsers();
GetUsers.fromJson(Map<String, dynamic> json) : super();
fromMap(Map<String, dynamic> json) {
return this;
}
Map<String, dynamic> toJson() => {};
getTypeName() => "GetUsers";
TypeContext? context = _ctx;
}
TypeContext _ctx = TypeContext(library: 'auth.migrantleap.com', types: <String, TypeInfo> {
'BaseResponse': TypeInfo(TypeOf.Class, create:() => BaseResponse()),
'MUser': TypeInfo(TypeOf.Class, create:() => MUser()),
'GetUsersResponse': TypeInfo(TypeOf.Class, create:() => GetUsersResponse()),
'List<MUser>': TypeInfo(TypeOf.Class, create:() => <MUser>[]),
'GetUsers': TypeInfo(TypeOf.Class, create:() => GetUsers()),
});
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 /api/v1/users HTTP/1.1 Host: auth.migrantleap.com Accept: text/csv
HTTP/1.1 200 OK
Content-Type: text/csv
Content-Length: length
{"users":[{"id":"String","email":"String","firstName":"String","lastName":"String","country":"String","language":"String","birthDate":"String","address":"String","address2":"String","city":"String","state":"String","zipCode":"String","phoneNumber":"String","emailConfirmed":false,"healthId":"String","memberId":"String","subscription":"String"}],"responseStatus":{"statusCode":0,"message":"String","stackTrace":"String","errors":[{"errorCode":"String","fieldName":"String","message":"String","meta":{"String":"String"}}],"meta":{"String":"String"}}}