| Requires any of the roles: | bookingsupplier-administrator-write, superadmin |
| PUT | /widget/configuration/{Id}/bumpversion | Bump the homepage default widget configuration to the next schema version | Moves the homepage default configuration's SchemaVersion to SchemaVersion + 1. Returns 400 if the next version's schema does not exist yet, if UseFactoryDefaults is true and the next version has no DefaultConfiguration authored, or if the target configuration is not the homepage default. |
|---|
<?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 WidgetConfigurationResponse implements JsonSerializable
{
public function __construct(
/** @var string */
public string $Id='',
/** @var string */
public string $CompanyId='',
/** @var string */
public string $Name='',
/** @var string|null */
public ?string $Slug=null,
/** @var string|null */
public ?string $Description=null,
/** @var string */
public string $Configuration='',
/** @var int */
public int $SchemaVersion=0,
/** @var bool|null */
public ?bool $IsHomepageDefault=null,
/** @var DateTime */
public DateTime $CreatedDate=new DateTime(),
/** @var DateTime|null */
public ?DateTime $UpdatedDate=null,
/** @var ResponseStatus|null */
public ?ResponseStatus $ResponseStatus=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['Id'])) $this->Id = $o['Id'];
if (isset($o['CompanyId'])) $this->CompanyId = $o['CompanyId'];
if (isset($o['Name'])) $this->Name = $o['Name'];
if (isset($o['Slug'])) $this->Slug = $o['Slug'];
if (isset($o['Description'])) $this->Description = $o['Description'];
if (isset($o['Configuration'])) $this->Configuration = $o['Configuration'];
if (isset($o['SchemaVersion'])) $this->SchemaVersion = $o['SchemaVersion'];
if (isset($o['IsHomepageDefault'])) $this->IsHomepageDefault = $o['IsHomepageDefault'];
if (isset($o['CreatedDate'])) $this->CreatedDate = JsonConverters::from('DateTime', $o['CreatedDate']);
if (isset($o['UpdatedDate'])) $this->UpdatedDate = JsonConverters::from('DateTimeOffset', $o['UpdatedDate']);
if (isset($o['ResponseStatus'])) $this->ResponseStatus = JsonConverters::from('ResponseStatus', $o['ResponseStatus']);
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->Id)) $o['Id'] = $this->Id;
if (isset($this->CompanyId)) $o['CompanyId'] = $this->CompanyId;
if (isset($this->Name)) $o['Name'] = $this->Name;
if (isset($this->Slug)) $o['Slug'] = $this->Slug;
if (isset($this->Description)) $o['Description'] = $this->Description;
if (isset($this->Configuration)) $o['Configuration'] = $this->Configuration;
if (isset($this->SchemaVersion)) $o['SchemaVersion'] = $this->SchemaVersion;
if (isset($this->IsHomepageDefault)) $o['IsHomepageDefault'] = $this->IsHomepageDefault;
if (isset($this->CreatedDate)) $o['CreatedDate'] = JsonConverters::to('DateTime', $this->CreatedDate);
if (isset($this->UpdatedDate)) $o['UpdatedDate'] = JsonConverters::to('DateTimeOffset', $this->UpdatedDate);
if (isset($this->ResponseStatus)) $o['ResponseStatus'] = JsonConverters::to('ResponseStatus', $this->ResponseStatus);
return empty($o) ? new class(){} : $o;
}
}
// @ApiResponse(Description="Not the homepage default, next schema version doesn't exist, or (when UseFactoryDefaults) the next version has no factory default authored yet", StatusCode=400)
// @ApiResponse(Description="Returned if the configuration was not found", StatusCode=404)
// @ApiResponse(Description="Returned if the current user is not allowed to perform the action", StatusCode=401)
// @ValidateRequest(Validator="IsAuthenticated")
class BumpWidgetConfigurationVersion implements ICompany, JsonSerializable
{
public function __construct(
/** @description The company id, if empty will use the company id for the user you are logged in with. */
// @ApiMember(Description="The company id, if empty will use the company id for the user you are logged in with.")
/** @var string|null */
public ?string $CompanyId=null,
/** @description The widget configuration id (6-character NanoID). */
// @ApiMember(Description="The widget configuration id (6-character NanoID).", IsRequired=true, ParameterType="path")
/** @var string */
public string $Id='',
/** @description When true, overwrites Configuration with the next schema version's factory-default JSON. When false, only SchemaVersion is moved and the existing Configuration is preserved unvalidated against the new schema. */
// @ApiMember(Description="When true, overwrites Configuration with the next schema version's factory-default JSON. When false, only SchemaVersion is moved and the existing Configuration is preserved unvalidated against the new schema.", IsRequired=true)
/** @var bool|null */
public ?bool $UseFactoryDefaults=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['CompanyId'])) $this->CompanyId = $o['CompanyId'];
if (isset($o['Id'])) $this->Id = $o['Id'];
if (isset($o['UseFactoryDefaults'])) $this->UseFactoryDefaults = $o['UseFactoryDefaults'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->CompanyId)) $o['CompanyId'] = $this->CompanyId;
if (isset($this->Id)) $o['Id'] = $this->Id;
if (isset($this->UseFactoryDefaults)) $o['UseFactoryDefaults'] = $this->UseFactoryDefaults;
return empty($o) ? new class(){} : $o;
}
}
PHP BumpWidgetConfigurationVersion DTOs
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.
PUT /widget/configuration/{Id}/bumpversion HTTP/1.1
Host: api.bookmore.com
Accept: application/xml
Content-Type: application/xml
Content-Length: length
<BumpWidgetConfigurationVersion xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/BokaMera.API.ServiceModel.Dtos">
<CompanyId>00000000-0000-0000-0000-000000000000</CompanyId>
<Id>String</Id>
<UseFactoryDefaults>false</UseFactoryDefaults>
</BumpWidgetConfigurationVersion>
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length
<WidgetConfigurationResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/BokaMera.API.ServiceModel.Dtos">
<CompanyId>00000000-0000-0000-0000-000000000000</CompanyId>
<Configuration>String</Configuration>
<CreatedDate>0001-01-01T00:00:00</CreatedDate>
<Description>String</Description>
<Id>String</Id>
<IsHomepageDefault>false</IsHomepageDefault>
<Name>String</Name>
<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>
<SchemaVersion>0</SchemaVersion>
<Slug>String</Slug>
<UpdatedDate xmlns:d2p1="http://schemas.datacontract.org/2004/07/System">
<d2p1:DateTime>0001-01-01T00:00:00Z</d2p1:DateTime>
<d2p1:OffsetMinutes>0</d2p1:OffsetMinutes>
</UpdatedDate>
</WidgetConfigurationResponse>