Blazor Diffusion

<back to all web services

GetAnalyticsReports

<?php namespace dtos;

use DateTime;
use Exception;
use DateInterval;
use JsonSerializable;
use ServiceStack\{IReturn,IReturnVoid,IGet,IPost,IPut,IDelete,IPatch,IMeta,IHasSessionId,IHasBearerToken,IHasVersion};
use ServiceStack\{ICrud,ICreateDb,IUpdateDb,IPatchDb,IDeleteDb,ISaveDb,AuditBase,QueryDb,QueryDb2,QueryData,QueryData2,QueryResponse};
use ServiceStack\{ResponseStatus,ResponseError,EmptyResponse,IdResponse,ArrayList,KeyValuePair2,StringResponse,StringsResponse,Tuple2,Tuple3,ByteArray};
use ServiceStack\{JsonConverters,Returns,TypeContext};


// @DataContract
class RequestSummary implements JsonSerializable
{
    public function __construct(
        // @DataMember(Order=1)
        /** @var string|null */
        public ?string $name=null,

        // @DataMember(Order=2)
        /** @var int */
        public int $totalRequests=0,

        // @DataMember(Order=3)
        /** @var int */
        public int $totalRequestLength=0,

        // @DataMember(Order=4)
        /** @var int */
        public int $minRequestLength=0,

        // @DataMember(Order=5)
        /** @var int */
        public int $maxRequestLength=0,

        // @DataMember(Order=6)
        /** @var float */
        public float $totalDuration=0.0,

        // @DataMember(Order=7)
        /** @var float */
        public float $minDuration=0.0,

        // @DataMember(Order=8)
        /** @var float */
        public float $maxDuration=0.0,

        // @DataMember(Order=9)
        /** @var array<string,int>|null */
        public ?array $status=null,

        // @DataMember(Order=10)
        /** @var array<string,int>|null */
        public ?array $durations=null,

        // @DataMember(Order=11)
        /** @var array<string,int>|null */
        public ?array $apis=null,

        // @DataMember(Order=12)
        /** @var array<string,int>|null */
        public ?array $users=null,

        // @DataMember(Order=13)
        /** @var array<string,int>|null */
        public ?array $ips=null,

        // @DataMember(Order=14)
        /** @var array<string,int>|null */
        public ?array $apiKeys=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['name'])) $this->name = $o['name'];
        if (isset($o['totalRequests'])) $this->totalRequests = $o['totalRequests'];
        if (isset($o['totalRequestLength'])) $this->totalRequestLength = $o['totalRequestLength'];
        if (isset($o['minRequestLength'])) $this->minRequestLength = $o['minRequestLength'];
        if (isset($o['maxRequestLength'])) $this->maxRequestLength = $o['maxRequestLength'];
        if (isset($o['totalDuration'])) $this->totalDuration = $o['totalDuration'];
        if (isset($o['minDuration'])) $this->minDuration = $o['minDuration'];
        if (isset($o['maxDuration'])) $this->maxDuration = $o['maxDuration'];
        if (isset($o['status'])) $this->status = JsonConverters::from(JsonConverters::context('Dictionary',genericArgs:['int','int']), $o['status']);
        if (isset($o['durations'])) $this->durations = JsonConverters::from(JsonConverters::context('Dictionary',genericArgs:['string','int']), $o['durations']);
        if (isset($o['apis'])) $this->apis = JsonConverters::from(JsonConverters::context('Dictionary',genericArgs:['string','int']), $o['apis']);
        if (isset($o['users'])) $this->users = JsonConverters::from(JsonConverters::context('Dictionary',genericArgs:['string','int']), $o['users']);
        if (isset($o['ips'])) $this->ips = JsonConverters::from(JsonConverters::context('Dictionary',genericArgs:['string','int']), $o['ips']);
        if (isset($o['apiKeys'])) $this->apiKeys = JsonConverters::from(JsonConverters::context('Dictionary',genericArgs:['string','int']), $o['apiKeys']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->name)) $o['name'] = $this->name;
        if (isset($this->totalRequests)) $o['totalRequests'] = $this->totalRequests;
        if (isset($this->totalRequestLength)) $o['totalRequestLength'] = $this->totalRequestLength;
        if (isset($this->minRequestLength)) $o['minRequestLength'] = $this->minRequestLength;
        if (isset($this->maxRequestLength)) $o['maxRequestLength'] = $this->maxRequestLength;
        if (isset($this->totalDuration)) $o['totalDuration'] = $this->totalDuration;
        if (isset($this->minDuration)) $o['minDuration'] = $this->minDuration;
        if (isset($this->maxDuration)) $o['maxDuration'] = $this->maxDuration;
        if (isset($this->status)) $o['status'] = JsonConverters::to(JsonConverters::context('Dictionary',genericArgs:['int','int']), $this->status);
        if (isset($this->durations)) $o['durations'] = JsonConverters::to(JsonConverters::context('Dictionary',genericArgs:['string','int']), $this->durations);
        if (isset($this->apis)) $o['apis'] = JsonConverters::to(JsonConverters::context('Dictionary',genericArgs:['string','int']), $this->apis);
        if (isset($this->users)) $o['users'] = JsonConverters::to(JsonConverters::context('Dictionary',genericArgs:['string','int']), $this->users);
        if (isset($this->ips)) $o['ips'] = JsonConverters::to(JsonConverters::context('Dictionary',genericArgs:['string','int']), $this->ips);
        if (isset($this->apiKeys)) $o['apiKeys'] = JsonConverters::to(JsonConverters::context('Dictionary',genericArgs:['string','int']), $this->apiKeys);
        return empty($o) ? new class(){} : $o;
    }
}

// @DataContract
class AnalyticsReports implements JsonSerializable
{
    public function __construct(
        // @DataMember(Order=1)
        /** @var int */
        public int $id=0,

        // @DataMember(Order=2)
        /** @var DateTime */
        public DateTime $created=new DateTime(),

        // @DataMember(Order=3)
        /** @var float */
        public float $version=0.0,

        // @DataMember(Order=4)
        /** @var array<string,RequestSummary>|null */
        public ?array $apis=null,

        // @DataMember(Order=5)
        /** @var array<string,RequestSummary>|null */
        public ?array $users=null,

        // @DataMember(Order=6)
        /** @var array<string,RequestSummary>|null */
        public ?array $tags=null,

        // @DataMember(Order=7)
        /** @var array<string,RequestSummary>|null */
        public ?array $status=null,

        // @DataMember(Order=8)
        /** @var array<string,RequestSummary>|null */
        public ?array $days=null,

        // @DataMember(Order=9)
        /** @var array<string,RequestSummary>|null */
        public ?array $apiKeys=null,

        // @DataMember(Order=10)
        /** @var array<string,RequestSummary>|null */
        public ?array $ips=null,

        // @DataMember(Order=11)
        /** @var array<string,RequestSummary>|null */
        public ?array $browsers=null,

        // @DataMember(Order=12)
        /** @var array<string,RequestSummary>|null */
        public ?array $devices=null,

        // @DataMember(Order=13)
        /** @var array<string,RequestSummary>|null */
        public ?array $bots=null,

        // @DataMember(Order=14)
        /** @var array<string,int>|null */
        public ?array $durations=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['id'])) $this->id = $o['id'];
        if (isset($o['created'])) $this->created = JsonConverters::from('DateTime', $o['created']);
        if (isset($o['version'])) $this->version = $o['version'];
        if (isset($o['apis'])) $this->apis = JsonConverters::from(JsonConverters::context('Dictionary',genericArgs:['string','RequestSummary']), $o['apis']);
        if (isset($o['users'])) $this->users = JsonConverters::from(JsonConverters::context('Dictionary',genericArgs:['string','RequestSummary']), $o['users']);
        if (isset($o['tags'])) $this->tags = JsonConverters::from(JsonConverters::context('Dictionary',genericArgs:['string','RequestSummary']), $o['tags']);
        if (isset($o['status'])) $this->status = JsonConverters::from(JsonConverters::context('Dictionary',genericArgs:['string','RequestSummary']), $o['status']);
        if (isset($o['days'])) $this->days = JsonConverters::from(JsonConverters::context('Dictionary',genericArgs:['string','RequestSummary']), $o['days']);
        if (isset($o['apiKeys'])) $this->apiKeys = JsonConverters::from(JsonConverters::context('Dictionary',genericArgs:['string','RequestSummary']), $o['apiKeys']);
        if (isset($o['ips'])) $this->ips = JsonConverters::from(JsonConverters::context('Dictionary',genericArgs:['string','RequestSummary']), $o['ips']);
        if (isset($o['browsers'])) $this->browsers = JsonConverters::from(JsonConverters::context('Dictionary',genericArgs:['string','RequestSummary']), $o['browsers']);
        if (isset($o['devices'])) $this->devices = JsonConverters::from(JsonConverters::context('Dictionary',genericArgs:['string','RequestSummary']), $o['devices']);
        if (isset($o['bots'])) $this->bots = JsonConverters::from(JsonConverters::context('Dictionary',genericArgs:['string','RequestSummary']), $o['bots']);
        if (isset($o['durations'])) $this->durations = JsonConverters::from(JsonConverters::context('Dictionary',genericArgs:['string','int']), $o['durations']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->id)) $o['id'] = $this->id;
        if (isset($this->created)) $o['created'] = JsonConverters::to('DateTime', $this->created);
        if (isset($this->version)) $o['version'] = $this->version;
        if (isset($this->apis)) $o['apis'] = JsonConverters::to(JsonConverters::context('Dictionary',genericArgs:['string','RequestSummary']), $this->apis);
        if (isset($this->users)) $o['users'] = JsonConverters::to(JsonConverters::context('Dictionary',genericArgs:['string','RequestSummary']), $this->users);
        if (isset($this->tags)) $o['tags'] = JsonConverters::to(JsonConverters::context('Dictionary',genericArgs:['string','RequestSummary']), $this->tags);
        if (isset($this->status)) $o['status'] = JsonConverters::to(JsonConverters::context('Dictionary',genericArgs:['string','RequestSummary']), $this->status);
        if (isset($this->days)) $o['days'] = JsonConverters::to(JsonConverters::context('Dictionary',genericArgs:['string','RequestSummary']), $this->days);
        if (isset($this->apiKeys)) $o['apiKeys'] = JsonConverters::to(JsonConverters::context('Dictionary',genericArgs:['string','RequestSummary']), $this->apiKeys);
        if (isset($this->ips)) $o['ips'] = JsonConverters::to(JsonConverters::context('Dictionary',genericArgs:['string','RequestSummary']), $this->ips);
        if (isset($this->browsers)) $o['browsers'] = JsonConverters::to(JsonConverters::context('Dictionary',genericArgs:['string','RequestSummary']), $this->browsers);
        if (isset($this->devices)) $o['devices'] = JsonConverters::to(JsonConverters::context('Dictionary',genericArgs:['string','RequestSummary']), $this->devices);
        if (isset($this->bots)) $o['bots'] = JsonConverters::to(JsonConverters::context('Dictionary',genericArgs:['string','RequestSummary']), $this->bots);
        if (isset($this->durations)) $o['durations'] = JsonConverters::to(JsonConverters::context('Dictionary',genericArgs:['string','int']), $this->durations);
        return empty($o) ? new class(){} : $o;
    }
}

// @DataContract
class GetAnalyticsReportsResponse implements JsonSerializable
{
    public function __construct(
        // @DataMember(Order=1)
        /** @var AnalyticsReports|null */
        public ?AnalyticsReports $result=null,

        // @DataMember(Order=2)
        /** @var ResponseStatus|null */
        public ?ResponseStatus $responseStatus=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['result'])) $this->result = JsonConverters::from('AnalyticsReports', $o['result']);
        if (isset($o['responseStatus'])) $this->responseStatus = JsonConverters::from('ResponseStatus', $o['responseStatus']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->result)) $o['result'] = JsonConverters::to('AnalyticsReports', $this->result);
        if (isset($this->responseStatus)) $o['responseStatus'] = JsonConverters::to('ResponseStatus', $this->responseStatus);
        return empty($o) ? new class(){} : $o;
    }
}

// @DataContract
class GetAnalyticsReports implements IGet, JsonSerializable
{
    public function __construct(
        // @DataMember(Order=1)
        /** @var DateTime|null */
        public ?DateTime $month=null,

        // @DataMember(Order=2)
        /** @var string|null */
        public ?string $filter=null,

        // @DataMember(Order=3)
        /** @var string|null */
        public ?string $value=null,

        // @DataMember(Order=4)
        /** @var bool|null */
        public ?bool $force=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['month'])) $this->month = JsonConverters::from('DateTime', $o['month']);
        if (isset($o['filter'])) $this->filter = $o['filter'];
        if (isset($o['value'])) $this->value = $o['value'];
        if (isset($o['force'])) $this->force = $o['force'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->month)) $o['month'] = JsonConverters::to('DateTime', $this->month);
        if (isset($this->filter)) $o['filter'] = $this->filter;
        if (isset($this->value)) $o['value'] = $this->value;
        if (isset($this->force)) $o['force'] = $this->force;
        return empty($o) ? new class(){} : $o;
    }
}

PHP GetAnalyticsReports DTOs

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

HTTP + OTHER

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

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

{"month":"0001-01-01T00:00:00","filter":"String","value":"String","force":false}
HTTP/1.1 200 OK
Content-Type: text/jsonl
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"}}}