DigiOffice API Services Services

<back to all web services

GetDocumentSearch

Requires Authentication
The following routes are available for this service:
POST/api/documents/search
<?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 DocumentIdentifier implements JsonSerializable
{
    public function __construct(
        /** @var string */
        public string $ID='',
        /** @var string|null */
        public ?string $DisplayName=null
    ) {
    }

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

class GetDocumentSearch implements IDocumentSearchCriteria, JsonSerializable
{
    public function __construct(
        /** @var string|null */
        public ?string $SearchCriteria=null,
        /** @var int */
        public int $PageNumber=0,
        /** @var int */
        public int $PageSize=0,
        /** @var array<string>|null */
        public ?array $ExcludeID=null,
        /** @var bool|null */
        public ?bool $AllVersions=null,
        /** @var bool|null */
        public ?bool $Archived=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['SearchCriteria'])) $this->SearchCriteria = $o['SearchCriteria'];
        if (isset($o['PageNumber'])) $this->PageNumber = $o['PageNumber'];
        if (isset($o['PageSize'])) $this->PageSize = $o['PageSize'];
        if (isset($o['ExcludeID'])) $this->ExcludeID = JsonConverters::fromArray('Guid', $o['ExcludeID']);
        if (isset($o['AllVersions'])) $this->AllVersions = $o['AllVersions'];
        if (isset($o['Archived'])) $this->Archived = $o['Archived'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->SearchCriteria)) $o['SearchCriteria'] = $this->SearchCriteria;
        if (isset($this->PageNumber)) $o['PageNumber'] = $this->PageNumber;
        if (isset($this->PageSize)) $o['PageSize'] = $this->PageSize;
        if (isset($this->ExcludeID)) $o['ExcludeID'] = JsonConverters::toArray('Guid', $this->ExcludeID);
        if (isset($this->AllVersions)) $o['AllVersions'] = $this->AllVersions;
        if (isset($this->Archived)) $o['Archived'] = $this->Archived;
        return empty($o) ? new class(){} : $o;
    }
}

/**
 * @template T
 * @template TPrimaryKey
 */
class SearchResult2 implements JsonSerializable
{
    public array $genericArgs = [];
    public static function create(array $genericArgs=[]): SearchResult2 {
        $to = new SearchResult2();
        $to->genericArgs = $genericArgs;
        return $to;
    }

    public function __construct(
        /** @var array<DocumentIdentifier>|null */
        public mixed $Results=null,
        /** @var int */
        public mixed $Total=0
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['Results'])) $this->Results = JsonConverters::fromArray('DocumentIdentifier', $o['Results']);
        if (isset($o['Total'])) $this->Total = $o['Total'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->Results)) $o['Results'] = JsonConverters::toArray('DocumentIdentifier', $this->Results);
        if (isset($this->Total)) $o['Total'] = $this->Total;
        return empty($o) ? new class(){} : $o;
    }
}

PHP GetDocumentSearch 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 /api/documents/search HTTP/1.1 
Host: test-do-services.klokgroep.nl 
Accept: text/csv
Content-Type: text/csv
Content-Length: length

{"SearchCriteria":"String","PageNumber":0,"PageSize":0,"ExcludeID":["00000000-0000-0000-0000-000000000000"],"AllVersions":false,"Archived":false}
HTTP/1.1 200 OK
Content-Type: text/csv
Content-Length: length

{"Results":[{"ID":"00000000-0000-0000-0000-000000000000","DisplayName":"String"}],"Total":0}