BokaMera.API.Host

<back to all web services

UpdateArticle

Requires Authentication
Requires any of the roles:bookingsupplier-administrator-write, superadmin
The following routes are available for this service:
PUT/articles/{Id}Updates articleUpdates article for 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
Object = TypeVar('Object')


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class BaseModel:
    pass


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ArticleServiceRelation(BaseModel):
    # @Required()
    company_id: Optional[str] = None

    id: int = 0
    # @Required()
    service_id: int = 0

    # @Required()
    article_id: int = 0


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ArticleResponse:
    company_id: Optional[str] = None
    id: int = 0
    name: Optional[str] = None
    article_type_id: int = 0
    description: Optional[str] = None
    image_url: Optional[str] = None
    active: bool = False
    amount: int = 0
    price: float = 0.0
    currency_id: Optional[str] = None
    sort_order: int = 0
    updated_date: datetime.datetime = datetime.datetime(1, 1, 1)
    created_date: datetime.datetime = datetime.datetime(1, 1, 1)
    duration: int = 0
    services: List[ArticleServiceRelation] = field(default_factory=list)
    service_ids: List[int] = field(default_factory=list)
    price_sign: Optional[str] = None
    vat: Optional[Decimal] = None
    valid_days: int = 0


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class UpdateArticle(ICompany):
    # @ApiMember(Description="", IsRequired=true, ParameterType="query")
    id: int = 0
    """
    
    """

    # @ApiMember(Description="")
    company_id: Optional[str] = None
    """
    
    """

    # @ApiMember(Description="")
    name: Optional[str] = None
    """
    
    """

    # @ApiMember(Description="")
    article_type_id: Optional[int] = None
    """
    
    """

    # @ApiMember(Description="")
    description: Optional[str] = None
    """
    
    """

    # @ApiMember(Description="")
    image_url: Optional[str] = None
    """
    
    """

    # @ApiMember(Description="SortOrder")
    sort_order: Optional[int] = None
    """
    SortOrder
    """


    # @ApiMember(Description="")
    active: Optional[bool] = None
    """
    
    """

    # @ApiMember(Description="")
    amount: Optional[int] = None
    """
    
    """

    # @ApiMember(Description="If the article is a service article, the duration in minutes.", IsRequired=true)
    duration: Optional[int] = None
    """
    If the article is a service article, the duration in minutes.
    """


    # @ApiMember(Description="The updated price of the article.")
    price: Optional[float] = None
    """
    The updated price of the article.
    """


    # @ApiMember(Description="The payment currency id")
    currency_id: Optional[str] = None
    """
    The payment currency id
    """


    # @ApiMember(Description="The price VAT in percent")
    vat: Optional[Decimal] = None
    """
    The price VAT in percent
    """


    # @ApiMember(Description="Query for specific services.", ParameterType="query")
    service_ids: List[int] = field(default_factory=list)
    """
    Query for specific services.
    """


    # @ApiMember(Description="Number of days the article is valid from the purchase date. Used to calculate ValidToDate on rebate codes, punch tickets, and gift cards.")
    valid_days: Optional[int] = None
    """
    Number of days the article is valid from the purchase date. Used to calculate ValidToDate on rebate codes, punch tickets, and gift cards.
    """

Python UpdateArticle DTOs

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

HTTP + XML

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

PUT /articles/{Id} HTTP/1.1 
Host: api.bokamera.se 
Accept: application/xml
Content-Type: application/xml
Content-Length: length

<UpdateArticle xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/BokaMera.API.ServiceModel.Dtos">
  <Active>false</Active>
  <Amount>0</Amount>
  <ArticleTypeId>0</ArticleTypeId>
  <CompanyId>00000000-0000-0000-0000-000000000000</CompanyId>
  <CurrencyId>String</CurrencyId>
  <Description>String</Description>
  <Duration>0</Duration>
  <Id>0</Id>
  <ImageUrl i:nil="true" />
  <Name>String</Name>
  <Price>0</Price>
  <ServiceIds xmlns:d2p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
    <d2p1:int>0</d2p1:int>
  </ServiceIds>
  <SortOrder>0</SortOrder>
  <VAT>0</VAT>
  <ValidDays>0</ValidDays>
</UpdateArticle>
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length

<ArticleResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/BokaMera.API.ServiceModel.Dtos">
  <Active>false</Active>
  <Amount>0</Amount>
  <ArticleTypeId>0</ArticleTypeId>
  <CompanyId>00000000-0000-0000-0000-000000000000</CompanyId>
  <CreatedDate>0001-01-01T00:00:00</CreatedDate>
  <CurrencyId>String</CurrencyId>
  <Description>String</Description>
  <Duration>0</Duration>
  <Id>0</Id>
  <ImageUrl>String</ImageUrl>
  <Name>String</Name>
  <Price>0</Price>
  <PriceSign>String</PriceSign>
  <ServiceIds xmlns:d2p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
    <d2p1:int>0</d2p1:int>
  </ServiceIds>
  <Services xmlns:d2p1="http://schemas.datacontract.org/2004/07/BokaMera.API.ServiceModel.Db">
    <d2p1:ArticleServiceRelation>
      <d2p1:ArticleId>0</d2p1:ArticleId>
      <d2p1:CompanyId>00000000-0000-0000-0000-000000000000</d2p1:CompanyId>
      <d2p1:Id>0</d2p1:Id>
      <d2p1:ServiceId>0</d2p1:ServiceId>
    </d2p1:ArticleServiceRelation>
  </Services>
  <SortOrder>0</SortOrder>
  <UpdatedDate>0001-01-01T00:00:00</UpdatedDate>
  <VAT>0</VAT>
  <ValidDays>0</ValidDays>
</ArticleResponse>