BokaMera.API.Host

<back to all web services

UpdateCodeLockSetting

Requires Authentication
Requires any of the roles:bookingsupplier-administrator-write, superadmin
The following routes are available for this service:
PUT/codelock/settingsUpdate settings for the code locks of the company of the currently logged in userUpdate settings for code lock of the company of the currently logged in user.
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


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class CodeLockSystemResponse:
    # @ApiMember(DataType="int", Description="The system type of the code lock")
    id: int = 0
    """
    The system type of the code lock
    """


    # @ApiMember(DataType="string", Description="The name of the code lock system")
    name: Optional[str] = None
    """
    The name of the code lock system
    """


    # @ApiMember(DataType="string", Description="The description of the code lock system")
    description: Optional[str] = None
    """
    The description of the code lock system
    """


    # @ApiMember(Description="The logotype of the code lock system")
    logo_type: Optional[str] = None
    """
    The logotype of the code lock system
    """


    # @ApiMember(Description="The supplier name of the code lock system")
    supplier: Optional[str] = None
    """
    The supplier name of the code lock system
    """


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class CodeLockSettingResponse:
    company_id: Optional[str] = None
    # @ApiMember(DataType="int", Description="The system type of the code lock")
    code_lock_systems_id: int = 0
    """
    The system type of the code lock
    """


    # @ApiMember(DataType="bool", Description="If code lock sync is active")
    active: bool = False
    """
    If code lock sync is active
    """


    # @ApiMember(DataType="int", Description="Number of minutes the access should be valid before booking starts.")
    valid_before_minutes: int = 0
    """
    Number of minutes the access should be valid before booking starts.
    """


    # @ApiMember(DataType="int", Description="Number of minutes the access should be valid after booking ends.")
    valid_after_minutes: int = 0
    """
    Number of minutes the access should be valid after booking ends.
    """


    # @ApiMember(DataType="boolean", Description="If it should clean up old bookings after the passed")
    delete_old_by_schedule: bool = False
    """
    If it should clean up old bookings after the passed
    """


    # @ApiMember(DataType="boolean", Description="If a notification should be sent by Email")
    send_email_notification: bool = False
    """
    If a notification should be sent by Email
    """


    # @ApiMember(DataType="boolean", Description="If a notification should be sent by SMS")
    send_s_m_s_notification: bool = False
    """
    If a notification should be sent by SMS
    """


    # @ApiMember(DataType="int", Description="How long before the booking starts in minutes the notification should be sent")
    email_notification_time: int = 0
    """
    How long before the booking starts in minutes the notification should be sent
    """


    # @ApiMember(DataType="int", Description="How long before the booking starts in minutes the notification should be sent")
    sms_notification_time: int = 0
    """
    How long before the booking starts in minutes the notification should be sent
    """


    # @ApiMember(DataType="datetime", Description="When settings was created")
    created: datetime.datetime = datetime.datetime(1, 1, 1)
    """
    When settings was created
    """


    # @ApiMember(DataType="datetime", Description="When settings was updated")
    updated: datetime.datetime = datetime.datetime(1, 1, 1)
    """
    When settings was updated
    """


    # @ApiMember(Description="The available code lock systems to choose from")
    code_lock_system_options: Optional[List[CodeLockSystemResponse]] = None
    """
    The available code lock systems to choose from
    """


# @ValidateRequest(Validator="IsAuthenticated")
# @ApiResponse(Description="You were unauthorized to call this service", StatusCode=401)
# @ApiResponse(Description="You have too low privileges to call this service", StatusCode=403)
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class UpdateCodeLockSetting(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(DataType="bool", Description="If code lock sync is active")
    active: Optional[bool] = None
    """
    If code lock sync is active
    """


    # @ApiMember(DataType="int", Description="The system type of the code lock")
    code_lock_systems_id: Optional[int] = None
    """
    The system type of the code lock
    """


    # @ApiMember(DataType="int", Description="Number of minutes the access should be valid before booking starts.")
    valid_before_minutes: Optional[int] = None
    """
    Number of minutes the access should be valid before booking starts.
    """


    # @ApiMember(DataType="int", Description="Number of minutes the access should be valid after booking ends.")
    valid_after_minutes: Optional[int] = None
    """
    Number of minutes the access should be valid after booking ends.
    """


    # @ApiMember(DataType="boolean", Description="If it should clean up old bookings after the passed")
    delete_old_by_schedule: Optional[bool] = None
    """
    If it should clean up old bookings after the passed
    """


    # @ApiMember(DataType="boolean", Description="If a notification should be sent by Email")
    send_email_notification: Optional[bool] = None
    """
    If a notification should be sent by Email
    """


    # @ApiMember(DataType="boolean", Description="If a notification should be sent by SMS")
    send_s_m_s_notification: Optional[bool] = None
    """
    If a notification should be sent by SMS
    """


    # @ApiMember(DataType="int", Description="How long before the booking starts in minutes the notification should be sent")
    email_notification_time: Optional[int] = None
    """
    How long before the booking starts in minutes the notification should be sent
    """


    # @ApiMember(DataType="int", Description="How long before the booking starts in minutes the notification should be sent")
    sms_notification_time: Optional[int] = None
    """
    How long before the booking starts in minutes the notification should be sent
    """

Python UpdateCodeLockSetting DTOs

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

HTTP + OTHER

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

PUT /codelock/settings HTTP/1.1 
Host: testapi.bokamera.se 
Accept: text/jsonl
Content-Type: text/jsonl
Content-Length: length

{"CompanyId":"00000000-0000-0000-0000-000000000000","Active":false,"CodeLockSystemsId":0,"ValidBeforeMinutes":0,"ValidAfterMinutes":0,"DeleteOldBySchedule":false,"SendEmailNotification":false,"SendSMSNotification":false,"EmailNotificationTime":0,"SMSNotificationTime":0}
HTTP/1.1 200 OK
Content-Type: text/jsonl
Content-Length: length

{"CodeLockSystemsId":0,"Active":false,"ValidBeforeMinutes":0,"ValidAfterMinutes":0,"DeleteOldBySchedule":false,"SendEmailNotification":false,"SendSMSNotification":false,"EmailNotificationTime":0,"SMSNotificationTime":0,"CodeLockSystemOptions":[{"Id":0,"Name":"String","Description":"String","Supplier":"String"}]}