| Requires any of the roles: | Client, Admin, Partner |
| All Verbs | /restfiles/files | ||
|---|---|---|---|
| All Verbs | /restfiles/files/{Path*} |
<?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 Files implements JsonSerializable
{
public function __construct(
/** @var string|null */
public ?string $Path=null,
/** @var string|null */
public ?string $TextContents=null,
/** @var bool|null */
public ?bool $ForDownload=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['Path'])) $this->Path = $o['Path'];
if (isset($o['TextContents'])) $this->TextContents = $o['TextContents'];
if (isset($o['ForDownload'])) $this->ForDownload = $o['ForDownload'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->Path)) $o['Path'] = $this->Path;
if (isset($this->TextContents)) $o['TextContents'] = $this->TextContents;
if (isset($this->ForDownload)) $o['ForDownload'] = $this->ForDownload;
return empty($o) ? new class(){} : $o;
}
}
class Folder implements JsonSerializable
{
public function __construct(
/** @var string|null */
public ?string $Name=null,
/** @var DateTime */
public DateTime $ModifiedDate=new DateTime(),
/** @var int */
public int $FileCount=0
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['Name'])) $this->Name = $o['Name'];
if (isset($o['ModifiedDate'])) $this->ModifiedDate = JsonConverters::from('DateTime', $o['ModifiedDate']);
if (isset($o['FileCount'])) $this->FileCount = $o['FileCount'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->Name)) $o['Name'] = $this->Name;
if (isset($this->ModifiedDate)) $o['ModifiedDate'] = JsonConverters::to('DateTime', $this->ModifiedDate);
if (isset($this->FileCount)) $o['FileCount'] = $this->FileCount;
return empty($o) ? new class(){} : $o;
}
}
class File implements JsonSerializable
{
public function __construct(
/** @var string|null */
public ?string $Name=null,
/** @var string|null */
public ?string $Extension=null,
/** @var int */
public int $FileSizeBytes=0,
/** @var DateTime */
public DateTime $ModifiedDate=new DateTime(),
/** @var bool|null */
public ?bool $IsTextFile=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['Name'])) $this->Name = $o['Name'];
if (isset($o['Extension'])) $this->Extension = $o['Extension'];
if (isset($o['FileSizeBytes'])) $this->FileSizeBytes = $o['FileSizeBytes'];
if (isset($o['ModifiedDate'])) $this->ModifiedDate = JsonConverters::from('DateTime', $o['ModifiedDate']);
if (isset($o['IsTextFile'])) $this->IsTextFile = $o['IsTextFile'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->Name)) $o['Name'] = $this->Name;
if (isset($this->Extension)) $o['Extension'] = $this->Extension;
if (isset($this->FileSizeBytes)) $o['FileSizeBytes'] = $this->FileSizeBytes;
if (isset($this->ModifiedDate)) $o['ModifiedDate'] = JsonConverters::to('DateTime', $this->ModifiedDate);
if (isset($this->IsTextFile)) $o['IsTextFile'] = $this->IsTextFile;
return empty($o) ? new class(){} : $o;
}
}
class FolderResult implements JsonSerializable
{
public function __construct(
/** @var array<Folder>|null */
public ?array $Folders=null,
/** @var array<File>|null */
public ?array $Files=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['Folders'])) $this->Folders = JsonConverters::fromArray('Folder', $o['Folders']);
if (isset($o['Files'])) $this->Files = JsonConverters::fromArray('File', $o['Files']);
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->Folders)) $o['Folders'] = JsonConverters::toArray('Folder', $this->Folders);
if (isset($this->Files)) $o['Files'] = JsonConverters::toArray('File', $this->Files);
return empty($o) ? new class(){} : $o;
}
}
class FileResult implements JsonSerializable
{
public function __construct(
/** @var string|null */
public ?string $Name=null,
/** @var string|null */
public ?string $Extension=null,
/** @var int */
public int $FileSizeBytes=0,
/** @var DateTime */
public DateTime $ModifiedDate=new DateTime(),
/** @var bool|null */
public ?bool $IsTextFile=null,
/** @var string|null */
public ?string $Contents=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['Name'])) $this->Name = $o['Name'];
if (isset($o['Extension'])) $this->Extension = $o['Extension'];
if (isset($o['FileSizeBytes'])) $this->FileSizeBytes = $o['FileSizeBytes'];
if (isset($o['ModifiedDate'])) $this->ModifiedDate = JsonConverters::from('DateTime', $o['ModifiedDate']);
if (isset($o['IsTextFile'])) $this->IsTextFile = $o['IsTextFile'];
if (isset($o['Contents'])) $this->Contents = $o['Contents'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->Name)) $o['Name'] = $this->Name;
if (isset($this->Extension)) $o['Extension'] = $this->Extension;
if (isset($this->FileSizeBytes)) $o['FileSizeBytes'] = $this->FileSizeBytes;
if (isset($this->ModifiedDate)) $o['ModifiedDate'] = JsonConverters::to('DateTime', $this->ModifiedDate);
if (isset($this->IsTextFile)) $o['IsTextFile'] = $this->IsTextFile;
if (isset($this->Contents)) $o['Contents'] = $this->Contents;
return empty($o) ? new class(){} : $o;
}
}
class FilesResponse implements JsonSerializable
{
public function __construct(
/** @var FolderResult|null */
public ?FolderResult $Directory=null,
/** @var FileResult|null */
public ?FileResult $File=null,
/** @var ResponseStatus|null */
public ?ResponseStatus $ResponseStatus=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['Directory'])) $this->Directory = JsonConverters::from('FolderResult', $o['Directory']);
if (isset($o['File'])) $this->File = JsonConverters::from('FileResult', $o['File']);
if (isset($o['ResponseStatus'])) $this->ResponseStatus = JsonConverters::from('ResponseStatus', $o['ResponseStatus']);
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->Directory)) $o['Directory'] = JsonConverters::to('FolderResult', $this->Directory);
if (isset($this->File)) $o['File'] = JsonConverters::to('FileResult', $this->File);
if (isset($this->ResponseStatus)) $o['ResponseStatus'] = JsonConverters::to('ResponseStatus', $this->ResponseStatus);
return empty($o) ? new class(){} : $o;
}
}
To override the Content-type in your clients, use the HTTP Accept Header, append the .xml suffix or ?format=xml
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /restfiles/files HTTP/1.1
Host: duengageapi.uat.scadsoftware.com
Accept: application/xml
Content-Type: application/xml
Content-Length: length
<Files xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/digitaluapi.ServiceInterface">
<ForDownload>false</ForDownload>
<Path>String</Path>
<TextContents>String</TextContents>
</Files>
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length
<FilesResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/digitaluapi.ServiceInterface">
<Directory>
<Files>
<File>
<Extension>String</Extension>
<FileSizeBytes>0</FileSizeBytes>
<IsTextFile>false</IsTextFile>
<ModifiedDate>0001-01-01T00:00:00</ModifiedDate>
<Name>String</Name>
</File>
</Files>
<Folders>
<Folder>
<FileCount>0</FileCount>
<ModifiedDate>0001-01-01T00:00:00</ModifiedDate>
<Name>String</Name>
</Folder>
</Folders>
</Directory>
<File>
<Contents>String</Contents>
<Extension>String</Extension>
<FileSizeBytes>0</FileSizeBytes>
<IsTextFile>false</IsTextFile>
<ModifiedDate>0001-01-01T00:00:00</ModifiedDate>
<Name>String</Name>
</File>
<ResponseStatus xmlns:d2p1="http://schemas.servicestack.net/types">
<d2p1:ErrorCode>String</d2p1:ErrorCode>
<d2p1:Message>String</d2p1:Message>
<d2p1:StackTrace>String</d2p1:StackTrace>
<d2p1:Errors>
<d2p1:ResponseError>
<d2p1:ErrorCode>String</d2p1:ErrorCode>
<d2p1:FieldName>String</d2p1:FieldName>
<d2p1:Message>String</d2p1:Message>
<d2p1:Meta xmlns:d5p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d5p1:KeyValueOfstringstring>
<d5p1:Key>String</d5p1:Key>
<d5p1:Value>String</d5p1:Value>
</d5p1:KeyValueOfstringstring>
</d2p1:Meta>
</d2p1:ResponseError>
</d2p1:Errors>
<d2p1:Meta xmlns:d3p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d3p1:KeyValueOfstringstring>
<d3p1:Key>String</d3p1:Key>
<d3p1:Value>String</d3p1:Value>
</d3p1:KeyValueOfstringstring>
</d2p1:Meta>
</ResponseStatus>
</FilesResponse>