Requires any of the roles: | SystemAdministrator, Manager, Customer |
All Verbs | /reports/call-center-abandon |
---|
import 'package:servicestack/servicestack.dart';
import 'dart:typed_data';
abstract class ReportRequest implements IPost
{
/**
* The account ID this report should be run for
*/
// @ApiMember(Description="The account ID this report should be run for")
String? accountId;
/**
* The email address to notify after the report is run
*/
// @ApiMember(Description="The email address to notify after the report is run")
String? emailAddressToNotify;
/**
* The webhook to call after the report is complete with the data from the report
*/
// @ApiMember(Description="The webhook to call after the report is complete with the data from the report")
String? webhookUrl;
ReportRequest({this.accountId,this.emailAddressToNotify,this.webhookUrl});
ReportRequest.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
accountId = json['accountId'];
emailAddressToNotify = json['emailAddressToNotify'];
webhookUrl = json['webhookUrl'];
return this;
}
Map<String, dynamic> toJson() => {
'accountId': accountId,
'emailAddressToNotify': emailAddressToNotify,
'webhookUrl': webhookUrl
};
getTypeName() => "ReportRequest";
TypeContext? context = _ctx;
}
enum ReportStatuses
{
Queued,
Running,
Completed,
Error,
}
class ReportInfo implements IConvertible
{
String? id;
String? name;
ReportStatuses? status;
String? statusMessage;
String? dateCreated;
String? dateUpdated;
String? downloadLink;
String? jobId;
String? emailAddressToNotify;
String? server;
ReportInfo({this.id,this.name,this.status,this.statusMessage,this.dateCreated,this.dateUpdated,this.downloadLink,this.jobId,this.emailAddressToNotify,this.server});
ReportInfo.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
id = json['id'];
name = json['name'];
status = JsonConverters.fromJson(json['status'],'ReportStatuses',context!);
statusMessage = json['statusMessage'];
dateCreated = json['dateCreated'];
dateUpdated = json['dateUpdated'];
downloadLink = json['downloadLink'];
jobId = json['jobId'];
emailAddressToNotify = json['emailAddressToNotify'];
server = json['server'];
return this;
}
Map<String, dynamic> toJson() => {
'id': id,
'name': name,
'status': JsonConverters.toJson(status,'ReportStatuses',context!),
'statusMessage': statusMessage,
'dateCreated': dateCreated,
'dateUpdated': dateUpdated,
'downloadLink': downloadLink,
'jobId': jobId,
'emailAddressToNotify': emailAddressToNotify,
'server': server
};
getTypeName() => "ReportInfo";
TypeContext? context = _ctx;
}
class CallCenterAbandonReport extends ReportRequest implements IConvertible
{
String? startDate;
String? endDate;
String? timeZoneId;
CallCenterAbandonReport({this.startDate,this.endDate,this.timeZoneId});
CallCenterAbandonReport.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
super.fromMap(json);
startDate = json['startDate'];
endDate = json['endDate'];
timeZoneId = json['timeZoneId'];
return this;
}
Map<String, dynamic> toJson() => super.toJson()..addAll({
'startDate': startDate,
'endDate': endDate,
'timeZoneId': timeZoneId
});
getTypeName() => "CallCenterAbandonReport";
TypeContext? context = _ctx;
}
TypeContext _ctx = TypeContext(library: 'team.evovoice.io', types: <String, TypeInfo> {
'ReportRequest': TypeInfo(TypeOf.AbstractClass),
'ReportStatuses': TypeInfo(TypeOf.Enum, enumValues:ReportStatuses.values),
'ReportInfo': TypeInfo(TypeOf.Class, create:() => ReportInfo()),
'CallCenterAbandonReport': TypeInfo(TypeOf.Class, create:() => CallCenterAbandonReport()),
});
Dart CallCenterAbandonReport DTOs
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 /reports/call-center-abandon HTTP/1.1
Host: team.evovoice.io
Accept: application/json
Content-Type: application/json
Content-Length: length
{"startDate":"String","endDate":"String","timeZoneId":"String","accountId":"String","emailAddressToNotify":"String","webhookUrl":"String"}
HTTP/1.1 200 OK Content-Type: application/json Content-Length: length {"id":"String","name":"String","status":"Queued","statusMessage":"String","dateCreated":"String","dateUpdated":"String","downloadLink":"String","jobId":"String","emailAddressToNotify":"String","server":"String"}