import 'package:servicestack/servicestack.dart';
import 'dart:typed_data';
// @DataContract
class AnalyticsLogInfo implements IConvertible
{
// @DataMember(Order=1)
int? id;
// @DataMember(Order=2)
DateTime? dateTime;
// @DataMember(Order=3)
String? browser;
// @DataMember(Order=4)
String? device;
// @DataMember(Order=5)
String? bot;
// @DataMember(Order=6)
String? op;
// @DataMember(Order=7)
String? userId;
// @DataMember(Order=8)
String? userName;
// @DataMember(Order=9)
String? apiKey;
// @DataMember(Order=10)
String? ip;
AnalyticsLogInfo({this.id,this.dateTime,this.browser,this.device,this.bot,this.op,this.userId,this.userName,this.apiKey,this.ip});
AnalyticsLogInfo.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
id = json['id'];
dateTime = JsonConverters.fromJson(json['dateTime'],'DateTime',context!);
browser = json['browser'];
device = json['device'];
bot = json['bot'];
op = json['op'];
userId = json['userId'];
userName = json['userName'];
apiKey = json['apiKey'];
ip = json['ip'];
return this;
}
Map<String, dynamic> toJson() => {
'id': id,
'dateTime': JsonConverters.toJson(dateTime,'DateTime',context!),
'browser': browser,
'device': device,
'bot': bot,
'op': op,
'userId': userId,
'userName': userName,
'apiKey': apiKey,
'ip': ip
};
getTypeName() => "AnalyticsLogInfo";
TypeContext? context = _ctx;
}
// @DataContract
class GetAnalyticsInfoResponse implements IConvertible
{
// @DataMember(Order=1)
List<String>? months;
// @DataMember(Order=2)
AnalyticsLogInfo? result;
// @DataMember(Order=3)
ResponseStatus? responseStatus;
GetAnalyticsInfoResponse({this.months,this.result,this.responseStatus});
GetAnalyticsInfoResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
months = JsonConverters.fromJson(json['months'],'List<String>',context!);
result = JsonConverters.fromJson(json['result'],'AnalyticsLogInfo',context!);
responseStatus = JsonConverters.fromJson(json['responseStatus'],'ResponseStatus',context!);
return this;
}
Map<String, dynamic> toJson() => {
'months': JsonConverters.toJson(months,'List<String>',context!),
'result': JsonConverters.toJson(result,'AnalyticsLogInfo',context!),
'responseStatus': JsonConverters.toJson(responseStatus,'ResponseStatus',context!)
};
getTypeName() => "GetAnalyticsInfoResponse";
TypeContext? context = _ctx;
}
// @DataContract
class GetAnalyticsInfo implements IGet, IConvertible
{
// @DataMember(Order=1)
DateTime? month;
// @DataMember(Order=2)
String? type;
// @DataMember(Order=3)
String? op;
// @DataMember(Order=4)
String? apiKey;
// @DataMember(Order=5)
String? userId;
// @DataMember(Order=6)
String? ip;
GetAnalyticsInfo({this.month,this.type,this.op,this.apiKey,this.userId,this.ip});
GetAnalyticsInfo.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
month = JsonConverters.fromJson(json['month'],'DateTime',context!);
type = json['type'];
op = json['op'];
apiKey = json['apiKey'];
userId = json['userId'];
ip = json['ip'];
return this;
}
Map<String, dynamic> toJson() => {
'month': JsonConverters.toJson(month,'DateTime',context!),
'type': type,
'op': op,
'apiKey': apiKey,
'userId': userId,
'ip': ip
};
getTypeName() => "GetAnalyticsInfo";
TypeContext? context = _ctx;
}
TypeContext _ctx = TypeContext(library: 'blazordiffusion.com', types: <String, TypeInfo> {
'AnalyticsLogInfo': TypeInfo(TypeOf.Class, create:() => AnalyticsLogInfo()),
'GetAnalyticsInfoResponse': TypeInfo(TypeOf.Class, create:() => GetAnalyticsInfoResponse()),
'GetAnalyticsInfo': TypeInfo(TypeOf.Class, create:() => GetAnalyticsInfo()),
});
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 /jsv/reply/GetAnalyticsInfo HTTP/1.1
Host: blazordiffusion.com
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length
{
month: 0001-01-01,
type: String,
op: String,
apiKey: String,
userId: String,
ip: String
}
HTTP/1.1 200 OK Content-Type: text/jsv Content-Length: length { months: [ String ], result: { id: 0, dateTime: 0001-01-01, browser: String, device: String, bot: String, op: String, userId: String, userName: String, apiKey: String, ip: String }, responseStatus: { errorCode: String, message: String, stackTrace: String, errors: [ { errorCode: String, fieldName: String, message: String, meta: { String: String } } ], meta: { String: String } } }