ScannerVision Web Server

<back to all web services

GetJsonTemplateRequest

Requires Authentication
<?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};


class JsonDto implements JsonSerializable
{
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        return empty($o) ? new class(){} : $o;
    }
}

class GetJsonTemplateRequest extends JsonDto implements JsonSerializable
{
    public function __construct(
        /** @var string|null */
        public ?string $Guid=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        parent::fromMap($o);
        if (isset($o['Guid'])) $this->Guid = $o['Guid'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = parent::jsonSerialize();
        if (isset($this->Guid)) $o['Guid'] = $this->Guid;
        return empty($o) ? new class(){} : $o;
    }
}

class JsonScanSettings implements JsonSerializable
{
    public function __construct(
        /** @var string|null */
        public ?string $ScanType=null,
        /** @var bool|null */
        public ?bool $ScanTypeLocked=null,
        /** @var string|null */
        public ?string $ScanColour=null,
        /** @var bool|null */
        public ?bool $ScanColourLocked=null,
        /** @var string|null */
        public ?string $ScanResolution=null,
        /** @var bool|null */
        public ?bool $ScanResolutionLocked=null,
        /** @var string|null */
        public ?string $ScanSide=null,
        /** @var bool|null */
        public ?bool $ScanSideLocked=null,
        /** @var string|null */
        public ?string $ScanSize=null,
        /** @var bool|null */
        public ?bool $ScanSizeLocked=null,
        /** @var string|null */
        public ?string $ScanOrientation=null,
        /** @var bool|null */
        public ?bool $ScanOrientationLocked=null,
        /** @var string|null */
        public ?string $ScanSource=null,
        /** @var bool|null */
        public ?bool $ScanSourceLocked=null,
        /** @var bool|null */
        public ?bool $ScanContinuously=null,
        /** @var bool|null */
        public ?bool $ScanContinuouslyLocked=null,
        /** @var bool|null */
        public ?bool $IsMixedSizes=null,
        /** @var bool|null */
        public ?bool $IsMixedSizesLocked=null,
        /** @var int */
        public int $MinimumPageCount=0,
        /** @var int */
        public int $MaximumPageCount=0
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['ScanType'])) $this->ScanType = $o['ScanType'];
        if (isset($o['ScanTypeLocked'])) $this->ScanTypeLocked = $o['ScanTypeLocked'];
        if (isset($o['ScanColour'])) $this->ScanColour = $o['ScanColour'];
        if (isset($o['ScanColourLocked'])) $this->ScanColourLocked = $o['ScanColourLocked'];
        if (isset($o['ScanResolution'])) $this->ScanResolution = $o['ScanResolution'];
        if (isset($o['ScanResolutionLocked'])) $this->ScanResolutionLocked = $o['ScanResolutionLocked'];
        if (isset($o['ScanSide'])) $this->ScanSide = $o['ScanSide'];
        if (isset($o['ScanSideLocked'])) $this->ScanSideLocked = $o['ScanSideLocked'];
        if (isset($o['ScanSize'])) $this->ScanSize = $o['ScanSize'];
        if (isset($o['ScanSizeLocked'])) $this->ScanSizeLocked = $o['ScanSizeLocked'];
        if (isset($o['ScanOrientation'])) $this->ScanOrientation = $o['ScanOrientation'];
        if (isset($o['ScanOrientationLocked'])) $this->ScanOrientationLocked = $o['ScanOrientationLocked'];
        if (isset($o['ScanSource'])) $this->ScanSource = $o['ScanSource'];
        if (isset($o['ScanSourceLocked'])) $this->ScanSourceLocked = $o['ScanSourceLocked'];
        if (isset($o['ScanContinuously'])) $this->ScanContinuously = $o['ScanContinuously'];
        if (isset($o['ScanContinuouslyLocked'])) $this->ScanContinuouslyLocked = $o['ScanContinuouslyLocked'];
        if (isset($o['IsMixedSizes'])) $this->IsMixedSizes = $o['IsMixedSizes'];
        if (isset($o['IsMixedSizesLocked'])) $this->IsMixedSizesLocked = $o['IsMixedSizesLocked'];
        if (isset($o['MinimumPageCount'])) $this->MinimumPageCount = $o['MinimumPageCount'];
        if (isset($o['MaximumPageCount'])) $this->MaximumPageCount = $o['MaximumPageCount'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->ScanType)) $o['ScanType'] = $this->ScanType;
        if (isset($this->ScanTypeLocked)) $o['ScanTypeLocked'] = $this->ScanTypeLocked;
        if (isset($this->ScanColour)) $o['ScanColour'] = $this->ScanColour;
        if (isset($this->ScanColourLocked)) $o['ScanColourLocked'] = $this->ScanColourLocked;
        if (isset($this->ScanResolution)) $o['ScanResolution'] = $this->ScanResolution;
        if (isset($this->ScanResolutionLocked)) $o['ScanResolutionLocked'] = $this->ScanResolutionLocked;
        if (isset($this->ScanSide)) $o['ScanSide'] = $this->ScanSide;
        if (isset($this->ScanSideLocked)) $o['ScanSideLocked'] = $this->ScanSideLocked;
        if (isset($this->ScanSize)) $o['ScanSize'] = $this->ScanSize;
        if (isset($this->ScanSizeLocked)) $o['ScanSizeLocked'] = $this->ScanSizeLocked;
        if (isset($this->ScanOrientation)) $o['ScanOrientation'] = $this->ScanOrientation;
        if (isset($this->ScanOrientationLocked)) $o['ScanOrientationLocked'] = $this->ScanOrientationLocked;
        if (isset($this->ScanSource)) $o['ScanSource'] = $this->ScanSource;
        if (isset($this->ScanSourceLocked)) $o['ScanSourceLocked'] = $this->ScanSourceLocked;
        if (isset($this->ScanContinuously)) $o['ScanContinuously'] = $this->ScanContinuously;
        if (isset($this->ScanContinuouslyLocked)) $o['ScanContinuouslyLocked'] = $this->ScanContinuouslyLocked;
        if (isset($this->IsMixedSizes)) $o['IsMixedSizes'] = $this->IsMixedSizes;
        if (isset($this->IsMixedSizesLocked)) $o['IsMixedSizesLocked'] = $this->IsMixedSizesLocked;
        if (isset($this->MinimumPageCount)) $o['MinimumPageCount'] = $this->MinimumPageCount;
        if (isset($this->MaximumPageCount)) $o['MaximumPageCount'] = $this->MaximumPageCount;
        return empty($o) ? new class(){} : $o;
    }
}

class JsonTemplate implements JsonSerializable
{
    public function __construct(
        /** @var string|null */
        public ?string $Name=null,
        /** @var string|null */
        public ?string $Description=null,
        /** @var string|null */
        public ?string $Guid=null,
        /** @var DateTime */
        public DateTime $TemplateModificationDate=new DateTime(),
        /** @var DateTime */
        public DateTime $IconModificationDate=new DateTime(),
        /** @var ByteArray|null */
        public ?ByteArray $Icon=null,
        /** @var JsonQuestion[]|null */
        public ?array $TemplateQuestions=null,
        /** @var JsonQuestion[]|null */
        public ?array $GlobalQuestions=null,
        /** @var JsonScanSettings|null */
        public ?JsonScanSettings $ScanSettings=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['Name'])) $this->Name = $o['Name'];
        if (isset($o['Description'])) $this->Description = $o['Description'];
        if (isset($o['Guid'])) $this->Guid = $o['Guid'];
        if (isset($o['TemplateModificationDate'])) $this->TemplateModificationDate = JsonConverters::from('DateTime', $o['TemplateModificationDate']);
        if (isset($o['IconModificationDate'])) $this->IconModificationDate = JsonConverters::from('DateTime', $o['IconModificationDate']);
        if (isset($o['Icon'])) $this->Icon = JsonConverters::from('ByteArray', $o['Icon']);
        if (isset($o['TemplateQuestions'])) $this->TemplateQuestions = JsonConverters::fromArray('JsonQuestion', $o['TemplateQuestions']);
        if (isset($o['GlobalQuestions'])) $this->GlobalQuestions = JsonConverters::fromArray('JsonQuestion', $o['GlobalQuestions']);
        if (isset($o['ScanSettings'])) $this->ScanSettings = JsonConverters::from('JsonScanSettings', $o['ScanSettings']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->Name)) $o['Name'] = $this->Name;
        if (isset($this->Description)) $o['Description'] = $this->Description;
        if (isset($this->Guid)) $o['Guid'] = $this->Guid;
        if (isset($this->TemplateModificationDate)) $o['TemplateModificationDate'] = JsonConverters::to('DateTime', $this->TemplateModificationDate);
        if (isset($this->IconModificationDate)) $o['IconModificationDate'] = JsonConverters::to('DateTime', $this->IconModificationDate);
        if (isset($this->Icon)) $o['Icon'] = JsonConverters::to('ByteArray', $this->Icon);
        if (isset($this->TemplateQuestions)) $o['TemplateQuestions'] = JsonConverters::toArray('JsonQuestion', $this->TemplateQuestions);
        if (isset($this->GlobalQuestions)) $o['GlobalQuestions'] = JsonConverters::toArray('JsonQuestion', $this->GlobalQuestions);
        if (isset($this->ScanSettings)) $o['ScanSettings'] = JsonConverters::to('JsonScanSettings', $this->ScanSettings);
        return empty($o) ? new class(){} : $o;
    }
}

class GetJsonTemplateResponse extends JsonDto implements JsonSerializable
{
    public function __construct(
        /** @var JsonTemplate|null */
        public ?JsonTemplate $Template=null
    ) {
    }

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

enum QuestionType : string
{
    case Edit = 'Edit';
    case List = 'List';
    case EditList = 'EditList';
    case Browse = 'Browse';
    case Password = 'Password';
    case Date = 'Date';
    case Time = 'Time';
    case Boolean = 'Boolean';
    case Integer = 'Integer';
    case Double = 'Double';
    case BrowseList = 'BrowseList';
}

class JsonQuestion implements JsonSerializable
{
    public function __construct(
        /** @var QuestionType|null */
        public ?QuestionType $PlQuestionType=null,
        /** @var string|null */
        public ?string $Question=null,
        /** @var string|null */
        public ?string $TagName=null,
        /** @var string|null */
        public ?string $Default=null,
        /** @var string|null */
        public ?string $ToolTip=null,
        /** @var string|null */
        public ?string $SampleValue=null,
        /** @var string|null */
        public ?string $Regex=null,
        /** @var int */
        public int $Minimum=0,
        /** @var int */
        public int $Maximum=0,
        /** @var bool|null */
        public ?bool $Required=null,
        /** @var bool|null */
        public ?bool $Dynamic=null,
        /** @var string|null */
        public ?string $PicklistGuid=null,
        /** @var string|null */
        public ?string $TemplateGuid=null,
        /** @var bool|null */
        public ?bool $HideDefaultValue=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['PlQuestionType'])) $this->PlQuestionType = JsonConverters::from('QuestionType', $o['PlQuestionType']);
        if (isset($o['Question'])) $this->Question = $o['Question'];
        if (isset($o['TagName'])) $this->TagName = $o['TagName'];
        if (isset($o['Default'])) $this->Default = $o['Default'];
        if (isset($o['ToolTip'])) $this->ToolTip = $o['ToolTip'];
        if (isset($o['SampleValue'])) $this->SampleValue = $o['SampleValue'];
        if (isset($o['Regex'])) $this->Regex = $o['Regex'];
        if (isset($o['Minimum'])) $this->Minimum = $o['Minimum'];
        if (isset($o['Maximum'])) $this->Maximum = $o['Maximum'];
        if (isset($o['Required'])) $this->Required = $o['Required'];
        if (isset($o['Dynamic'])) $this->Dynamic = $o['Dynamic'];
        if (isset($o['PicklistGuid'])) $this->PicklistGuid = $o['PicklistGuid'];
        if (isset($o['TemplateGuid'])) $this->TemplateGuid = $o['TemplateGuid'];
        if (isset($o['HideDefaultValue'])) $this->HideDefaultValue = $o['HideDefaultValue'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->PlQuestionType)) $o['PlQuestionType'] = JsonConverters::to('QuestionType', $this->PlQuestionType);
        if (isset($this->Question)) $o['Question'] = $this->Question;
        if (isset($this->TagName)) $o['TagName'] = $this->TagName;
        if (isset($this->Default)) $o['Default'] = $this->Default;
        if (isset($this->ToolTip)) $o['ToolTip'] = $this->ToolTip;
        if (isset($this->SampleValue)) $o['SampleValue'] = $this->SampleValue;
        if (isset($this->Regex)) $o['Regex'] = $this->Regex;
        if (isset($this->Minimum)) $o['Minimum'] = $this->Minimum;
        if (isset($this->Maximum)) $o['Maximum'] = $this->Maximum;
        if (isset($this->Required)) $o['Required'] = $this->Required;
        if (isset($this->Dynamic)) $o['Dynamic'] = $this->Dynamic;
        if (isset($this->PicklistGuid)) $o['PicklistGuid'] = $this->PicklistGuid;
        if (isset($this->TemplateGuid)) $o['TemplateGuid'] = $this->TemplateGuid;
        if (isset($this->HideDefaultValue)) $o['HideDefaultValue'] = $this->HideDefaultValue;
        return empty($o) ? new class(){} : $o;
    }
}

PHP GetJsonTemplateRequest 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/GetJsonTemplateRequest HTTP/1.1 
Host: buildmax.org 
Accept: text/csv
Content-Type: text/csv
Content-Length: length

{"Guid":"String"}
HTTP/1.1 200 OK
Content-Type: text/csv
Content-Length: length

{Unable to show example output for type 'GetJsonTemplateResponse' using the custom 'csv' filter}No parameterless constructor defined for this object.