| Requires any of the roles: | Agent, Administrator |
| POST,OPTIONS | /v1/report/export |
|---|
import 'package:servicestack/servicestack.dart';
import 'dart:typed_data';
class ReportMeasure implements IConvertible
{
String? FieldCode;
String? Agg;
ReportMeasure({this.FieldCode,this.Agg});
ReportMeasure.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
FieldCode = json['FieldCode'];
Agg = json['Agg'];
return this;
}
Map<String, dynamic> toJson() => {
'FieldCode': FieldCode,
'Agg': Agg
};
getTypeName() => "ReportMeasure";
TypeContext? context = _ctx;
}
class ReportSort implements IConvertible
{
String? FieldCode;
String? Dir;
ReportSort({this.FieldCode,this.Dir});
ReportSort.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
FieldCode = json['FieldCode'];
Dir = json['Dir'];
return this;
}
Map<String, dynamic> toJson() => {
'FieldCode': FieldCode,
'Dir': Dir
};
getTypeName() => "ReportSort";
TypeContext? context = _ctx;
}
class ReportDefinition implements IConvertible
{
String? DatasetCode;
List<String>? Dimensions = [];
List<ReportMeasure>? Measures = [];
List<String>? Joins = [];
String? Filters;
List<ReportSort>? Sorts = [];
int? Limit;
ReportDefinition({this.DatasetCode,this.Dimensions,this.Measures,this.Joins,this.Filters,this.Sorts,this.Limit});
ReportDefinition.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
DatasetCode = json['DatasetCode'];
Dimensions = JsonConverters.fromJson(json['Dimensions'],'List<String>',context!);
Measures = JsonConverters.fromJson(json['Measures'],'List<ReportMeasure>',context!);
Joins = JsonConverters.fromJson(json['Joins'],'List<String>',context!);
Filters = json['Filters'];
Sorts = JsonConverters.fromJson(json['Sorts'],'List<ReportSort>',context!);
Limit = json['Limit'];
return this;
}
Map<String, dynamic> toJson() => {
'DatasetCode': DatasetCode,
'Dimensions': JsonConverters.toJson(Dimensions,'List<String>',context!),
'Measures': JsonConverters.toJson(Measures,'List<ReportMeasure>',context!),
'Joins': JsonConverters.toJson(Joins,'List<String>',context!),
'Filters': Filters,
'Sorts': JsonConverters.toJson(Sorts,'List<ReportSort>',context!),
'Limit': Limit
};
getTypeName() => "ReportDefinition";
TypeContext? context = _ctx;
}
class ReportExportRequest extends ReportDefinition implements IConvertible
{
String? Format;
String? Title;
String? FileName;
ReportExportRequest({this.Format,this.Title,this.FileName});
ReportExportRequest.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
super.fromMap(json);
Format = json['Format'];
Title = json['Title'];
FileName = json['FileName'];
return this;
}
Map<String, dynamic> toJson() => super.toJson()..addAll({
'Format': Format,
'Title': Title,
'FileName': FileName
});
getTypeName() => "ReportExportRequest";
TypeContext? context = _ctx;
}
TypeContext _ctx = TypeContext(library: 'api.dev.dynamics.trendsic.com', types: <String, TypeInfo> {
'ReportMeasure': TypeInfo(TypeOf.Class, create:() => ReportMeasure()),
'ReportSort': TypeInfo(TypeOf.Class, create:() => ReportSort()),
'ReportDefinition': TypeInfo(TypeOf.Class, create:() => ReportDefinition()),
'List<ReportMeasure>': TypeInfo(TypeOf.Class, create:() => <ReportMeasure>[]),
'List<ReportSort>': TypeInfo(TypeOf.Class, create:() => <ReportSort>[]),
'ReportExportRequest': TypeInfo(TypeOf.Class, create:() => ReportExportRequest()),
});
To override the Content-type in your clients, use the HTTP Accept Header, append the .json suffix or ?format=json
To embed the response in a jsonp callback, append ?callback=myCallback
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /v1/report/export HTTP/1.1
Host: api.dev.dynamics.trendsic.com
Accept: application/json
Content-Type: application/json
Content-Length: length
{"Format":"String","Title":"String","FileName":"String","DatasetCode":"String","Dimensions":["String"],"Measures":[{"FieldCode":"String","Agg":"String"}],"Joins":["String"],"Filters":"String","Sorts":[{"FieldCode":"String","Dir":"String"}],"Limit":0}
HTTP/1.1 200 OK Content-Type: application/json Content-Length: length (byte[])