Required role: | Consumer |
GET | /profile |
---|
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
# module ConsumerApi
class Locale(str, Enum):
EN_US = 'EnUs'
NB_NO = 'NbNo'
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class DateOfBirth:
year: int = 0
month: int = 0
day_of_month: int = 0
class Sex(str, Enum):
MALE = 'Male'
FEMALE = 'Female'
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class UserAddress:
street_name: Optional[str] = None
street_number: Optional[str] = None
postal_code: Optional[str] = None
region: Optional[str] = None
country_code: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class HomeLocation:
address: Optional[UserAddress] = None
latitude: float = 0.0
longitude: float = 0.0
class DistanceUnit(str, Enum):
KILOMETER = 'Kilometer'
MILE = 'Mile'
To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
GET /profile HTTP/1.1 Host: unstable-consumer-api.brovs.com Accept: text/jsv
HTTP/1.1 200 OK Content-Type: text/jsv Content-Length: length { userProfile: { locale: EnUs, firstName: String, lastName: String, profilePhotoUrl: String, mobilePhone: String, mobilePhoneVerified: False, email: String, emailVerified: False, hasPassword: False, dateOfBirth: { year: 0, month: 0, dayOfMonth: 0 }, sex: Male, home: { address: { streetName: String, streetNumber: String, postalCode: String, region: String, countryCode: String }, latitude: 0, longitude: 0 }, showDistancesIn: Kilometer, legalIdentityVerified: False, managesPlacesInBusinessWeb: False, pointsTotal: 0 } }