BokaMera.API.Host

<back to all web services

UpdateUser

Requires Authentication
The following routes are available for this service:
PUT/usersUpdate my informationUpdates the logged in users info both in customer profile and application admin profile if any exists. Users are only allowed to update their own info.
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 UserProfileResponse:
    id: Optional[str] = None
    firstname: Optional[str] = None
    lastname: Optional[str] = None
    phone: Optional[str] = None
    email: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class AdminProfile:
    company_id: Optional[str] = None
    id: Optional[str] = None
    firstname: Optional[str] = None
    lastname: Optional[str] = None
    email: Optional[str] = None
    worker_id: Optional[str] = None
    phone: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class UpdateUserResponse:
    response_status: Optional[Object] = None
    # @ApiMember(Description="The user id for your profile.", IsRequired=true)
    user_id: Optional[str] = None
    """
    The user id for your profile.
    """


    user_profile: Optional[UserProfileResponse] = None
    admin_profile: Optional[AdminProfile] = None
    is_sent_confirmation_update_email: Optional[bool] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class UpdateCustomerProfile:
    firstname: Optional[str] = None
    lastname: Optional[str] = None
    phone: Optional[str] = None
    email: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class UpdateAdminProfile:
    firstname: Optional[str] = None
    lastname: Optional[str] = None
    phone: Optional[str] = None
    email: Optional[str] = None


class KeyCloakRealm(IntEnum):
    BOOK_MORE = 1
    BOOK_MORE_ADMIN = 2
    SUPER_ADMIN = 3


# @ApiResponse(Description="Returned if there is a validation error on the input parameters", StatusCode=400)
# @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 UpdateUser:
    # @ApiMember(Description="The user id for your profile.")
    user_id: Optional[str] = None
    """
    The user id for your profile.
    """


    new_email: Optional[str] = None
    user_profile: Optional[UpdateCustomerProfile] = None
    admin_profile: Optional[UpdateAdminProfile] = None
    # @ApiMember(Description="The user realm for identity server.  BookMore = 1, BookMoreAdmin = 2 ", IsRequired=true)
    realm: Optional[KeyCloakRealm] = None
    """
    The user realm for identity server.  BookMore = 1, BookMoreAdmin = 2 
    """

Python UpdateUser 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 /users HTTP/1.1 
Host: api.bokamera.se 
Accept: text/jsonl
Content-Type: text/jsonl
Content-Length: length

{"UserId":"00000000-0000-0000-0000-000000000000","NewEmail":"String","UserProfile":{"Firstname":"String","Lastname":"String","Phone":"String","Email":"String"},"AdminProfile":{"Firstname":"String","Lastname":"String","Phone":"String","Email":"String"},"Realm":"BookMore"}
HTTP/1.1 200 OK
Content-Type: text/jsonl
Content-Length: length

{"ResponseStatus":{},"UserId":"00000000-0000-0000-0000-000000000000","UserProfile":{"Firstname":"String","Lastname":"String","Phone":"String","Email":"String"},"AdminProfile":{"Firstname":"String","Lastname":"String","Email":"String","WorkerId":"String","Phone":"String"},"IsSentConfirmationUpdateEmail":false}