digitaluapi

<back to all web services

BatchAdd

Requires Authentication
Requires any of the roles:Client, Admin, Partner
The following routes are available for this service:
POST/batch
<?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 Batch implements JsonSerializable
{
    public function __construct(
        // @DataMember(Order=1)
        // @Required()
        /** @var int */
        public int $Id=0,

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

        // @DataMember(Order=3)
        // @Required()
        /** @var string */
        public string $FileName='',

        // @DataMember(Order=4)
        // @Required()
        /** @var string */
        public string $FileSize='',

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

        // @DataMember(Order=6)
        /** @var int */
        public int $UserAuthId=0,

        // @DataMember(Order=7)
        /** @var string */
        public string $RowVersionGuid='',

        // @DataMember(Order=8)
        /** @var int|null */
        public ?int $InsertedRecords=null,

        // @DataMember(Order=9)
        /** @var int|null */
        public ?int $UpdatedRecords=null,

        // @DataMember(Order=10)
        /** @var int|null */
        public ?int $DeletedRecords=null,

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

        // @DataMember(Order=12)
        /** @var int|null */
        public ?int $StatusCodesId=null,

        // @DataMember(Order=13)
        /** @var int|null */
        public ?int $ErrorRecords=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['Id'])) $this->Id = $o['Id'];
        if (isset($o['CreatedDate'])) $this->CreatedDate = JsonConverters::from('DateTimeOffset', $o['CreatedDate']);
        if (isset($o['FileName'])) $this->FileName = $o['FileName'];
        if (isset($o['FileSize'])) $this->FileSize = $o['FileSize'];
        if (isset($o['RecordCount'])) $this->RecordCount = $o['RecordCount'];
        if (isset($o['UserAuthId'])) $this->UserAuthId = $o['UserAuthId'];
        if (isset($o['RowVersionGuid'])) $this->RowVersionGuid = $o['RowVersionGuid'];
        if (isset($o['InsertedRecords'])) $this->InsertedRecords = $o['InsertedRecords'];
        if (isset($o['UpdatedRecords'])) $this->UpdatedRecords = $o['UpdatedRecords'];
        if (isset($o['DeletedRecords'])) $this->DeletedRecords = $o['DeletedRecords'];
        if (isset($o['UploadType'])) $this->UploadType = $o['UploadType'];
        if (isset($o['StatusCodesId'])) $this->StatusCodesId = $o['StatusCodesId'];
        if (isset($o['ErrorRecords'])) $this->ErrorRecords = $o['ErrorRecords'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->Id)) $o['Id'] = $this->Id;
        if (isset($this->CreatedDate)) $o['CreatedDate'] = JsonConverters::to('DateTimeOffset', $this->CreatedDate);
        if (isset($this->FileName)) $o['FileName'] = $this->FileName;
        if (isset($this->FileSize)) $o['FileSize'] = $this->FileSize;
        if (isset($this->RecordCount)) $o['RecordCount'] = $this->RecordCount;
        if (isset($this->UserAuthId)) $o['UserAuthId'] = $this->UserAuthId;
        if (isset($this->RowVersionGuid)) $o['RowVersionGuid'] = $this->RowVersionGuid;
        if (isset($this->InsertedRecords)) $o['InsertedRecords'] = $this->InsertedRecords;
        if (isset($this->UpdatedRecords)) $o['UpdatedRecords'] = $this->UpdatedRecords;
        if (isset($this->DeletedRecords)) $o['DeletedRecords'] = $this->DeletedRecords;
        if (isset($this->UploadType)) $o['UploadType'] = $this->UploadType;
        if (isset($this->StatusCodesId)) $o['StatusCodesId'] = $this->StatusCodesId;
        if (isset($this->ErrorRecords)) $o['ErrorRecords'] = $this->ErrorRecords;
        return empty($o) ? new class(){} : $o;
    }
}

// @DataContract
class BatchAdd implements JsonSerializable
{
    public function __construct(
        // @DataMember(Order=2)
        /** @var DateTime|null */
        public ?DateTime $CreatedDate=null,

        // @DataMember(Order=3)
        // @Validate(Validator="NotNull")
        /** @var string */
        public string $FileName='',

        // @DataMember(Order=4)
        // @Validate(Validator="NotNull")
        /** @var string */
        public string $FileSize='',

        // @DataMember(Order=5)
        // @Validate(Validator="NotNull")
        /** @var int */
        public int $RecordCount=0,

        // @DataMember(Order=6)
        /** @var int|null */
        public ?int $UserAuthId=null,

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

        // @DataMember(Order=8)
        /** @var int|null */
        public ?int $InsertedRecords=null,

        // @DataMember(Order=9)
        /** @var int|null */
        public ?int $UpdatedRecords=null,

        // @DataMember(Order=10)
        /** @var int|null */
        public ?int $DeletedRecords=null,

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

        // @DataMember(Order=12)
        /** @var int|null */
        public ?int $StatusCodesId=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['CreatedDate'])) $this->CreatedDate = JsonConverters::from('DateTimeOffset', $o['CreatedDate']);
        if (isset($o['FileName'])) $this->FileName = $o['FileName'];
        if (isset($o['FileSize'])) $this->FileSize = $o['FileSize'];
        if (isset($o['RecordCount'])) $this->RecordCount = $o['RecordCount'];
        if (isset($o['UserAuthId'])) $this->UserAuthId = $o['UserAuthId'];
        if (isset($o['RowVersionGuid'])) $this->RowVersionGuid = $o['RowVersionGuid'];
        if (isset($o['InsertedRecords'])) $this->InsertedRecords = $o['InsertedRecords'];
        if (isset($o['UpdatedRecords'])) $this->UpdatedRecords = $o['UpdatedRecords'];
        if (isset($o['DeletedRecords'])) $this->DeletedRecords = $o['DeletedRecords'];
        if (isset($o['UploadType'])) $this->UploadType = $o['UploadType'];
        if (isset($o['StatusCodesId'])) $this->StatusCodesId = $o['StatusCodesId'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->CreatedDate)) $o['CreatedDate'] = JsonConverters::to('DateTimeOffset', $this->CreatedDate);
        if (isset($this->FileName)) $o['FileName'] = $this->FileName;
        if (isset($this->FileSize)) $o['FileSize'] = $this->FileSize;
        if (isset($this->RecordCount)) $o['RecordCount'] = $this->RecordCount;
        if (isset($this->UserAuthId)) $o['UserAuthId'] = $this->UserAuthId;
        if (isset($this->RowVersionGuid)) $o['RowVersionGuid'] = $this->RowVersionGuid;
        if (isset($this->InsertedRecords)) $o['InsertedRecords'] = $this->InsertedRecords;
        if (isset($this->UpdatedRecords)) $o['UpdatedRecords'] = $this->UpdatedRecords;
        if (isset($this->DeletedRecords)) $o['DeletedRecords'] = $this->DeletedRecords;
        if (isset($this->UploadType)) $o['UploadType'] = $this->UploadType;
        if (isset($this->StatusCodesId)) $o['StatusCodesId'] = $this->StatusCodesId;
        return empty($o) ? new class(){} : $o;
    }
}

PHP BatchAdd DTOs

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

HTTP + JSV

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

POST /batch HTTP/1.1 
Host: duengageapi.uat.scadsoftware.com 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	CreatedDate: 0001-01-01T00:00:00.0000000+00:00,
	FileName: String,
	FileSize: String,
	RecordCount: 0,
	UserAuthId: 0,
	RowVersionGuid: 00000000000000000000000000000000,
	InsertedRecords: 0,
	UpdatedRecords: 0,
	DeletedRecords: 0,
	UploadType: String,
	StatusCodesId: 0
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	Id: 0,
	CreatedDate: 0001-01-01T00:00:00.0000000+00:00,
	FileName: String,
	FileSize: String,
	RecordCount: 0,
	UserAuthId: 0,
	RowVersionGuid: 00000000000000000000000000000000,
	InsertedRecords: 0,
	UpdatedRecords: 0,
	DeletedRecords: 0,
	UploadType: String,
	StatusCodesId: 0,
	ErrorRecords: 0
}