| GET | /customer/{boosterCustomerId} | Get customer details | Get Customer info based on the Booster Customer ID |
|---|
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 CustomerEmail:
# @ApiMember(Description="Description", IsRequired=true)
description: Optional[str] = None
"""
Description
"""
# @ApiMember(Description="Email Address", IsRequired=true)
email: Optional[str] = None
"""
Email Address
"""
# @ApiMember(Description="Is main email address", IsRequired=true)
is_main: bool = False
"""
Is main email address
"""
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class CustomerPhone:
# @ApiMember(Description="Description", IsRequired=true)
description: Optional[str] = None
"""
Description
"""
# @ApiMember(Description="Phone Number", IsRequired=true)
phone: Optional[str] = None
"""
Phone Number
"""
# @ApiMember(Description="Is main phone number ", IsRequired=true)
is_main: bool = False
"""
Is main phone number
"""
# @ApiMember(Description="Phone number country prefix", IsRequired=true)
prefix_country_id: Optional[str] = None
"""
Phone number country prefix
"""
# @ApiMember(Description="Telephone prefix", IsRequired=true)
telephone_prefix: Optional[str] = None
"""
Telephone prefix
"""
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class CustomerEvent:
# @ApiMember(Description="Event Id", IsRequired=true)
event_id: int = 0
"""
Event Id
"""
# @ApiMember(Description="Event Description ", IsRequired=true)
event_description: Optional[str] = None
"""
Event Description
"""
# @ApiMember(Description="Event Other", IsRequired=true)
event_type_other: Optional[str] = None
"""
Event Other
"""
# @ApiMember(Description="Comment", IsRequired=true)
comment: Optional[str] = None
"""
Comment
"""
# @ApiMember(Description="Event Day", IsRequired=true)
event_day: Optional[int] = None
"""
Event Day
"""
# @ApiMember(Description="Event Month", IsRequired=true)
event_month: Optional[int] = None
"""
Event Month
"""
# @ApiMember(Description="Event Year", IsRequired=true)
event_year: Optional[int] = None
"""
Event Year
"""
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class GetCustomerResponse:
# @ApiMember(Description="Booster Customer ID", IsRequired=true)
id: int = 0
"""
Booster Customer ID
"""
# @ApiMember(Description="SAP Customer ID", IsRequired=true)
sap_id: Optional[str] = None
"""
SAP Customer ID
"""
# @ApiMember(Description="Customer Reference", IsRequired=true)
customer_reference: Optional[str] = None
"""
Customer Reference
"""
# @ApiMember(Description="Gender", IsRequired=true)
gender: Optional[str] = None
"""
Gender
"""
# @ApiMember(Description="Personal Title", IsRequired=true)
personal_title: Optional[str] = None
"""
Personal Title
"""
# @ApiMember(Description="First Name", IsRequired=true)
first_name: Optional[str] = None
"""
First Name
"""
# @ApiMember(Description="Customer Last Name", IsRequired=true)
last_name: Optional[str] = None
"""
Customer Last Name
"""
# @ApiMember(Description="First Name Not Latin", IsRequired=true)
first_name_not_latin: Optional[str] = None
"""
First Name Not Latin
"""
# @ApiMember(Description="Customer Last Name Not Latin", IsRequired=true)
last_name_not_latin: Optional[str] = None
"""
Customer Last Name Not Latin
"""
# @ApiMember(Description="Middle Name", IsRequired=true)
middle_name: Optional[str] = None
"""
Middle Name
"""
# @ApiMember(Description="Can be contacted or not?", IsRequired=true)
can_be_contacted: bool = False
"""
Can be contacted or not?
"""
# @ApiMember(Description="Language", IsRequired=true)
language: Optional[str] = None
"""
Language
"""
# @ApiMember(Description="Country", IsRequired=true)
country_id: Optional[str] = None
"""
Country
"""
# @ApiMember(Description="Brand Trigram", IsRequired=true)
brand: Optional[str] = None
"""
Brand Trigram
"""
# @ApiMember(Description="List of Emails", IsRequired=true)
emails: Optional[List[CustomerEmail]] = None
"""
List of Emails
"""
# @ApiMember(Description="List of Phone Numbers", IsRequired=true)
phones: Optional[List[CustomerPhone]] = None
"""
List of Phone Numbers
"""
# @ApiMember(Description="List of Events", IsRequired=true)
events: Optional[List[CustomerEvent]] = None
"""
List of Events
"""
# @ApiMember(Description="Registration date")
registration_date: Optional[datetime.datetime] = None
"""
Registration date
"""
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class GetCustomer:
# @ApiMember(Description="Booster Customer ID", IsRequired=true)
booster_customer_id: int = 0
"""
Booster Customer ID
"""
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.
GET /customer/{boosterCustomerId} HTTP/1.1
Host: dev-api-booster.richemont.com
Accept: application/xml
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length
<GetCustomerResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/Richemont.Booster2.PublicApi.CRM.ServiceModel">
<brand>String</brand>
<canBeContacted>false</canBeContacted>
<countryId>String</countryId>
<customerReference>String</customerReference>
<emails>
<CustomerEmail>
<description>String</description>
<email>String</email>
<isMain>false</isMain>
</CustomerEmail>
</emails>
<events>
<CustomerEvent>
<comment>String</comment>
<eventDay>0</eventDay>
<eventDescription>String</eventDescription>
<eventId>0</eventId>
<eventMonth>0</eventMonth>
<eventTypeOther>String</eventTypeOther>
<eventYear>0</eventYear>
</CustomerEvent>
</events>
<firstName>String</firstName>
<firstNameNotLatin>String</firstNameNotLatin>
<gender>String</gender>
<id>0</id>
<language>String</language>
<lastName>String</lastName>
<lastNameNotLatin>String</lastNameNotLatin>
<middleName>String</middleName>
<personalTitle>String</personalTitle>
<phones>
<CustomerPhone>
<description>String</description>
<isMain>false</isMain>
<phone>String</phone>
<prefixCountryId>String</prefixCountryId>
<telephonePrefix>String</telephonePrefix>
</CustomerPhone>
</phones>
<registrationDate>0001-01-01T00:00:00</registrationDate>
<sapId>String</sapId>
</GetCustomerResponse>