Blazor Diffusion

<back to all web services

GetAnalyticsReports

import 'package:servicestack/servicestack.dart';
import 'dart:typed_data';

// @DataContract
class RequestSummary implements IConvertible
{
    // @DataMember(Order=1)
    String? name;

    // @DataMember(Order=2)
    int? totalRequests;

    // @DataMember(Order=3)
    int? totalRequestLength;

    // @DataMember(Order=4)
    int? minRequestLength;

    // @DataMember(Order=5)
    int? maxRequestLength;

    // @DataMember(Order=6)
    double? totalDuration;

    // @DataMember(Order=7)
    double? minDuration;

    // @DataMember(Order=8)
    double? maxDuration;

    // @DataMember(Order=9)
    Map<int,int?>? status;

    // @DataMember(Order=10)
    Map<String,int?>? durations;

    // @DataMember(Order=11)
    Map<String,int?>? apis;

    // @DataMember(Order=12)
    Map<String,int?>? users;

    // @DataMember(Order=13)
    Map<String,int?>? ips;

    // @DataMember(Order=14)
    Map<String,int?>? apiKeys;

    RequestSummary({this.name,this.totalRequests,this.totalRequestLength,this.minRequestLength,this.maxRequestLength,this.totalDuration,this.minDuration,this.maxDuration,this.status,this.durations,this.apis,this.users,this.ips,this.apiKeys});
    RequestSummary.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        name = json['name'];
        totalRequests = json['totalRequests'];
        totalRequestLength = json['totalRequestLength'];
        minRequestLength = json['minRequestLength'];
        maxRequestLength = json['maxRequestLength'];
        totalDuration = JsonConverters.toDouble(json['totalDuration']);
        minDuration = JsonConverters.toDouble(json['minDuration']);
        maxDuration = JsonConverters.toDouble(json['maxDuration']);
        status = JsonConverters.fromJson(json['status'],'Map<int,int?>',context!);
        durations = JsonConverters.fromJson(json['durations'],'Map<String,int?>',context!);
        apis = JsonConverters.fromJson(json['apis'],'Map<String,int?>',context!);
        users = JsonConverters.fromJson(json['users'],'Map<String,int?>',context!);
        ips = JsonConverters.fromJson(json['ips'],'Map<String,int?>',context!);
        apiKeys = JsonConverters.fromJson(json['apiKeys'],'Map<String,int?>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'name': name,
        'totalRequests': totalRequests,
        'totalRequestLength': totalRequestLength,
        'minRequestLength': minRequestLength,
        'maxRequestLength': maxRequestLength,
        'totalDuration': totalDuration,
        'minDuration': minDuration,
        'maxDuration': maxDuration,
        'status': JsonConverters.toJson(status,'Map<int,int?>',context!),
        'durations': JsonConverters.toJson(durations,'Map<String,int?>',context!),
        'apis': JsonConverters.toJson(apis,'Map<String,int?>',context!),
        'users': JsonConverters.toJson(users,'Map<String,int?>',context!),
        'ips': JsonConverters.toJson(ips,'Map<String,int?>',context!),
        'apiKeys': JsonConverters.toJson(apiKeys,'Map<String,int?>',context!)
    };

    getTypeName() => "RequestSummary";
    TypeContext? context = _ctx;
}

// @DataContract
class AnalyticsReports implements IConvertible
{
    // @DataMember(Order=1)
    int? id;

    // @DataMember(Order=2)
    DateTime? created;

    // @DataMember(Order=3)
    double? version;

    // @DataMember(Order=4)
    Map<String,RequestSummary?>? apis;

    // @DataMember(Order=5)
    Map<String,RequestSummary?>? users;

    // @DataMember(Order=6)
    Map<String,RequestSummary?>? tags;

    // @DataMember(Order=7)
    Map<String,RequestSummary?>? status;

    // @DataMember(Order=8)
    Map<String,RequestSummary?>? days;

    // @DataMember(Order=9)
    Map<String,RequestSummary?>? apiKeys;

    // @DataMember(Order=10)
    Map<String,RequestSummary?>? ips;

    // @DataMember(Order=11)
    Map<String,RequestSummary?>? browsers;

    // @DataMember(Order=12)
    Map<String,RequestSummary?>? devices;

    // @DataMember(Order=13)
    Map<String,RequestSummary?>? bots;

    // @DataMember(Order=14)
    Map<String,int?>? durations;

    AnalyticsReports({this.id,this.created,this.version,this.apis,this.users,this.tags,this.status,this.days,this.apiKeys,this.ips,this.browsers,this.devices,this.bots,this.durations});
    AnalyticsReports.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        id = json['id'];
        created = JsonConverters.fromJson(json['created'],'DateTime',context!);
        version = JsonConverters.toDouble(json['version']);
        apis = JsonConverters.fromJson(json['apis'],'Map<String,RequestSummary?>',context!);
        users = JsonConverters.fromJson(json['users'],'Map<String,RequestSummary?>',context!);
        tags = JsonConverters.fromJson(json['tags'],'Map<String,RequestSummary?>',context!);
        status = JsonConverters.fromJson(json['status'],'Map<String,RequestSummary?>',context!);
        days = JsonConverters.fromJson(json['days'],'Map<String,RequestSummary?>',context!);
        apiKeys = JsonConverters.fromJson(json['apiKeys'],'Map<String,RequestSummary?>',context!);
        ips = JsonConverters.fromJson(json['ips'],'Map<String,RequestSummary?>',context!);
        browsers = JsonConverters.fromJson(json['browsers'],'Map<String,RequestSummary?>',context!);
        devices = JsonConverters.fromJson(json['devices'],'Map<String,RequestSummary?>',context!);
        bots = JsonConverters.fromJson(json['bots'],'Map<String,RequestSummary?>',context!);
        durations = JsonConverters.fromJson(json['durations'],'Map<String,int?>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'id': id,
        'created': JsonConverters.toJson(created,'DateTime',context!),
        'version': version,
        'apis': JsonConverters.toJson(apis,'Map<String,RequestSummary?>',context!),
        'users': JsonConverters.toJson(users,'Map<String,RequestSummary?>',context!),
        'tags': JsonConverters.toJson(tags,'Map<String,RequestSummary?>',context!),
        'status': JsonConverters.toJson(status,'Map<String,RequestSummary?>',context!),
        'days': JsonConverters.toJson(days,'Map<String,RequestSummary?>',context!),
        'apiKeys': JsonConverters.toJson(apiKeys,'Map<String,RequestSummary?>',context!),
        'ips': JsonConverters.toJson(ips,'Map<String,RequestSummary?>',context!),
        'browsers': JsonConverters.toJson(browsers,'Map<String,RequestSummary?>',context!),
        'devices': JsonConverters.toJson(devices,'Map<String,RequestSummary?>',context!),
        'bots': JsonConverters.toJson(bots,'Map<String,RequestSummary?>',context!),
        'durations': JsonConverters.toJson(durations,'Map<String,int?>',context!)
    };

    getTypeName() => "AnalyticsReports";
    TypeContext? context = _ctx;
}

// @DataContract
class GetAnalyticsReportsResponse implements IConvertible
{
    // @DataMember(Order=1)
    AnalyticsReports? result;

    // @DataMember(Order=2)
    ResponseStatus? responseStatus;

    GetAnalyticsReportsResponse({this.result,this.responseStatus});
    GetAnalyticsReportsResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        result = JsonConverters.fromJson(json['result'],'AnalyticsReports',context!);
        responseStatus = JsonConverters.fromJson(json['responseStatus'],'ResponseStatus',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'result': JsonConverters.toJson(result,'AnalyticsReports',context!),
        'responseStatus': JsonConverters.toJson(responseStatus,'ResponseStatus',context!)
    };

    getTypeName() => "GetAnalyticsReportsResponse";
    TypeContext? context = _ctx;
}

// @DataContract
class GetAnalyticsReports implements IGet, IConvertible
{
    // @DataMember(Order=1)
    DateTime? month;

    // @DataMember(Order=2)
    String? filter;

    // @DataMember(Order=3)
    String? value;

    // @DataMember(Order=4)
    bool? force;

    GetAnalyticsReports({this.month,this.filter,this.value,this.force});
    GetAnalyticsReports.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        month = JsonConverters.fromJson(json['month'],'DateTime',context!);
        filter = json['filter'];
        value = json['value'];
        force = json['force'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'month': JsonConverters.toJson(month,'DateTime',context!),
        'filter': filter,
        'value': value,
        'force': force
    };

    getTypeName() => "GetAnalyticsReports";
    TypeContext? context = _ctx;
}

TypeContext _ctx = TypeContext(library: 'blazordiffusion.com', types: <String, TypeInfo> {
    'RequestSummary': TypeInfo(TypeOf.Class, create:() => RequestSummary()),
    'Map<int,int?>': TypeInfo(TypeOf.Class, create:() => Map<int,int?>()),
    'Map<String,int?>': TypeInfo(TypeOf.Class, create:() => Map<String,int?>()),
    'AnalyticsReports': TypeInfo(TypeOf.Class, create:() => AnalyticsReports()),
    'Map<String,RequestSummary?>': TypeInfo(TypeOf.Class, create:() => Map<String,RequestSummary?>()),
    'GetAnalyticsReportsResponse': TypeInfo(TypeOf.Class, create:() => GetAnalyticsReportsResponse()),
    'GetAnalyticsReports': TypeInfo(TypeOf.Class, create:() => GetAnalyticsReports()),
});

Dart GetAnalyticsReports DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .csv suffix or ?format=csv

HTTP + CSV

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

POST /csv/reply/GetAnalyticsReports HTTP/1.1 
Host: blazordiffusion.com 
Accept: text/csv
Content-Type: text/csv
Content-Length: length

{"month":"0001-01-01T00:00:00","filter":"String","value":"String","force":false}
HTTP/1.1 200 OK
Content-Type: text/csv
Content-Length: length

{"result":{"id":0,"created":"0001-01-01T00:00:00","version":0,"apis":{"String":{"name":"String","totalRequests":0,"totalRequestLength":0,"minRequestLength":0,"maxRequestLength":0,"totalDuration":0,"minDuration":0,"maxDuration":0,"status":{"0":0},"durations":{"String":0},"apis":{"String":0},"users":{"String":0},"ips":{"String":0},"apiKeys":{"String":0}}},"users":{"String":{"name":"String","totalRequests":0,"totalRequestLength":0,"minRequestLength":0,"maxRequestLength":0,"totalDuration":0,"minDuration":0,"maxDuration":0,"status":{"0":0},"durations":{"String":0},"apis":{"String":0},"users":{"String":0},"ips":{"String":0},"apiKeys":{"String":0}}},"tags":{"String":{"name":"String","totalRequests":0,"totalRequestLength":0,"minRequestLength":0,"maxRequestLength":0,"totalDuration":0,"minDuration":0,"maxDuration":0,"status":{"0":0},"durations":{"String":0},"apis":{"String":0},"users":{"String":0},"ips":{"String":0},"apiKeys":{"String":0}}},"status":{"String":{"name":"String","totalRequests":0,"totalRequestLength":0,"minRequestLength":0,"maxRequestLength":0,"totalDuration":0,"minDuration":0,"maxDuration":0,"status":{"0":0},"durations":{"String":0},"apis":{"String":0},"users":{"String":0},"ips":{"String":0},"apiKeys":{"String":0}}},"days":{"String":{"name":"String","totalRequests":0,"totalRequestLength":0,"minRequestLength":0,"maxRequestLength":0,"totalDuration":0,"minDuration":0,"maxDuration":0,"status":{"0":0},"durations":{"String":0},"apis":{"String":0},"users":{"String":0},"ips":{"String":0},"apiKeys":{"String":0}}},"apiKeys":{"String":{"name":"String","totalRequests":0,"totalRequestLength":0,"minRequestLength":0,"maxRequestLength":0,"totalDuration":0,"minDuration":0,"maxDuration":0,"status":{"0":0},"durations":{"String":0},"apis":{"String":0},"users":{"String":0},"ips":{"String":0},"apiKeys":{"String":0}}},"ips":{"String":{"name":"String","totalRequests":0,"totalRequestLength":0,"minRequestLength":0,"maxRequestLength":0,"totalDuration":0,"minDuration":0,"maxDuration":0,"status":{"0":0},"durations":{"String":0},"apis":{"String":0},"users":{"String":0},"ips":{"String":0},"apiKeys":{"String":0}}},"browsers":{"String":{"name":"String","totalRequests":0,"totalRequestLength":0,"minRequestLength":0,"maxRequestLength":0,"totalDuration":0,"minDuration":0,"maxDuration":0,"status":{"0":0},"durations":{"String":0},"apis":{"String":0},"users":{"String":0},"ips":{"String":0},"apiKeys":{"String":0}}},"devices":{"String":{"name":"String","totalRequests":0,"totalRequestLength":0,"minRequestLength":0,"maxRequestLength":0,"totalDuration":0,"minDuration":0,"maxDuration":0,"status":{"0":0},"durations":{"String":0},"apis":{"String":0},"users":{"String":0},"ips":{"String":0},"apiKeys":{"String":0}}},"bots":{"String":{"name":"String","totalRequests":0,"totalRequestLength":0,"minRequestLength":0,"maxRequestLength":0,"totalDuration":0,"minDuration":0,"maxDuration":0,"status":{"0":0},"durations":{"String":0},"apis":{"String":0},"users":{"String":0},"ips":{"String":0},"apiKeys":{"String":0}}},"durations":{"String":0}},"responseStatus":{"errorCode":"String","message":"String","stackTrace":"String","errors":[{"errorCode":"String","fieldName":"String","message":"String","meta":{"String":"String"}}],"meta":{"String":"String"}}}