BokaMera.API.Host

<back to all web services

SetHomepageWidgetConfiguration

Requires Authentication
Requires any of the roles:bookingsupplier-administrator-write, superadmin
The following routes are available for this service:
PUT/widget/configuration/{Id}/sethomepageSet a widget configuration as the homepage defaultMakes the supplied configuration the company's homepage default and removes the flag from the previous one. Slugs are left unchanged. Calling it on the current homepage default is a no-op success.
import datetime
import decimal
from marshmallow.fields import *
from servicestack import *
from typing import *
from dataclasses import dataclass, field
from dataclasses_json import dataclass_json, LetterCase, Undefined, config
from enum import Enum, IntEnum
Object = TypeVar('Object')


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class WidgetConfigurationResponse:
    id: Optional[str] = None
    company_id: Optional[str] = None
    name: Optional[str] = None
    slug: Optional[str] = None
    description: Optional[str] = None
    configuration: Optional[str] = None
    schema_version: int = 0
    is_homepage_default: bool = False
    created_date: datetime.datetime = datetime.datetime(1, 1, 1)
    updated_date: Optional[datetime.datetime] = None
    response_status: Optional[ResponseStatus] = None


# @ApiResponse(Description="Returned if there is a validation error on the input parameters", 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")
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class SetHomepageWidgetConfiguration(ICompany):
    # @ApiMember(Description="The company id, if empty will use the company id for the user you are logged in with.")
    company_id: Optional[str] = None
    """
    The company id, if empty will use the company id for the user you are logged in with.
    """


    # @ApiMember(Description="The widget configuration id (6-character NanoID).", IsRequired=true, ParameterType="path")
    id: Optional[str] = None
    """
    The widget configuration id (6-character NanoID).
    """

Python SetHomepageWidgetConfiguration 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.

PUT /widget/configuration/{Id}/sethomepage HTTP/1.1 
Host: testapi.bokamera.se 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	CompanyId: 00000000-0000-0000-0000-000000000000,
	Id: String
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	Id: String,
	Name: String,
	Slug: String,
	Description: String,
	Configuration: String,
	SchemaVersion: 0,
	IsHomepageDefault: False,
	UpdatedDate: 0001-01-01T00:00:00.0000000+00:00,
	ResponseStatus: 
	{
		ErrorCode: String,
		Message: String,
		StackTrace: String,
		Errors: 
		[
			{
				ErrorCode: String,
				FieldName: String,
				Message: String,
				Meta: 
				{
					String: String
				}
			}
		],
		Meta: 
		{
			String: String
		}
	}
}