ConsumerApi

<back to all web services

GetFollowingListRequest

Consumer
Requires Authentication
Required role:Consumer
The following routes are available for this service:
GET/place/GetFollowingList
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


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class OpeningHour:
    open_at_hour: int = 0
    open_at_minute: int = 0
    close_at_hour: int = 0
    close_at_minute: int = 0


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class WeeklyOpeningHours:
    monday: Optional[OpeningHour] = None
    tuesday: Optional[OpeningHour] = None
    wednesday: Optional[OpeningHour] = None
    thursday: Optional[OpeningHour] = None
    friday: Optional[OpeningHour] = None
    saturday: Optional[OpeningHour] = None
    sunday: Optional[OpeningHour] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class OpeningHours:
    weekly: Optional[WeeklyOpeningHours] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class CategoryTreeApiDto:
    name: Optional[str] = None
    slug: Optional[str] = None
    absolute_slug: Optional[str] = None
    image_url: Optional[str] = None
    all_image_url: Optional[str] = None
    icon_image_url: Optional[str] = None
    position: int = 0
    children: List[CategoryTreeApiDto] = field(default_factory=list)


class FeatureType(str, Enum):
    BAR_SPECIALITY = 'BarSpeciality'
    BAR_TYPE = 'BarType'
    CUISINE = 'Cuisine'
    SAVE_FOOD_AND_MONEY = 'SaveFoodAndMoney'
    MEAL_TYPE = 'MealType'
    MENU = 'Menu'
    OUTDOOR_SEATING = 'OutdoorSeating'
    PARKING = 'Parking'
    PAYMENT_OPTIONS = 'PaymentOptions'
    PRICE_MAIN_DISH = 'PriceMainDish'
    SUB_CATEGORIES = 'SubCategories'
    SUB_CATEGORIES_AND_BRANDS = 'SubCategoriesAndBrands'
    EATING_SUITABILITIES = 'EatingSuitabilities'
    TAKE_AWAY = 'TakeAway'
    WEAR_PRICE_PROFILE = 'WearPriceProfile'
    WHEEL_CHAIR_ACCESSIBLE = 'WheelChairAccessible'
    WIFI = 'Wifi'
    WEB_SHOP = 'WebShop'
    FILTERING = 'Filtering'


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class IndividualFeatureDataApiDto:
    slug: Optional[FeatureType] = None
    label: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class BarSpecialityEsDto:
    slug: Optional[str] = None
    title: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class BarTypeEsDto:
    slug: Optional[str] = None
    title: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class BrandApiDto:
    name: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class PlaceCustomBrandApiDto:
    name: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class PlaceSelectedBrandApiDto:
    brand: Optional[BrandApiDto] = None
    category_absolute_slugs: List[str] = field(default_factory=list)
    place_custom_brand: Optional[PlaceCustomBrandApiDto] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class CuisineEsDto:
    label: Optional[str] = None
    slug: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class MealTypeApiDto:
    label: Optional[str] = None
    slug: Optional[str] = None


class Parking(str, Enum):
    STREET_PARKING = 'StreetParking'
    PARKING_GARAGE_NEARBY = 'ParkingGarageNearby'


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ParkingApiDto:
    label: Optional[str] = None
    slug: Optional[Parking] = None


class PaymentOption(str, Enum):
    VISA = 'Visa'
    MASTER_CARD = 'MasterCard'
    AMERICAN_EXPRESS = 'AmericanExpress'
    DINERS = 'Diners'
    VIPPS = 'Vipps'


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class PaymentOptionApiDto:
    label: Optional[str] = None
    slug: Optional[PaymentOption] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class EatingSuitabilityApiDto:
    label: Optional[str] = None
    slug: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class TakeAwayApiDto:
    label: Optional[str] = None
    slug: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class WearPriceProfileEsDto:
    slug: Optional[str] = None
    label: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class MenuEsDto:
    name: Optional[str] = None
    url: Optional[str] = None
    position: int = 0


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ImageUrls:
    preview: Optional[str] = None
    small: Optional[str] = None
    medium: Optional[str] = None
    large: Optional[str] = None


class PlaceType(str, Enum):
    MALL = 'Mall'
    REGULAR = 'Regular'


class PriceMainDish(str, Enum):
    VALUE = 'Value'
    MEDIUM = 'Medium'
    HIGH = 'High'
    FINE_DINING = 'FineDining'


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class PriceMainDishApiDto:
    title: Optional[str] = None
    slug: Optional[PriceMainDish] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class TimeZoneDto:
    base_utc_offset: datetime.timedelta = datetime.timedelta()
    daylight_name: Optional[str] = None
    display_name: Optional[str] = None
    id: Optional[str] = None
    standard_name: Optional[str] = None
    supports_daylight_saving_time: bool = False


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class PlaceContact:
    phone: Optional[str] = None
    email: Optional[str] = None
    website: Optional[str] = None
    web_shop: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class PlaceAddress:
    street: 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 PlaceBasicApiDto:
    id: int = 0
    guid: Optional[str] = None
    overview: Optional[str] = None
    name: Optional[str] = None
    longitude: float = 0.0
    latitude: float = 0.0
    claimed: bool = False
    organization_number: Optional[str] = None
    country_code: Optional[str] = None
    opening_hours: Optional[OpeningHours] = None
    wheelchair_accessible: Optional[bool] = None
    wifi: Optional[bool] = None
    outdoor_seating: Optional[bool] = None
    save_food_and_money: Optional[bool] = None
    place_type: Optional[PlaceType] = None
    price_main_dish: Optional[PriceMainDishApiDto] = None
    time_zone_dto: Optional[TimeZoneDto] = None
    business_id: Optional[int] = None
    contact: Optional[PlaceContact] = None
    address: Optional[PlaceAddress] = None
    categories: List[CategoryTreeApiDto] = field(default_factory=list)
    logo_url: Optional[ImageUrls] = None
    image_url: Optional[ImageUrls] = None
    wear_price_profiles: List[WearPriceProfileEsDto] = field(default_factory=list)
    brands: List[PlaceSelectedBrandApiDto] = field(default_factory=list)
    floor: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class MallOtherServiceApiDto:
    service_name: Optional[str] = None
    floor: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class PlaceApiDto:
    id: int = 0
    guid: Optional[str] = None
    overview: Optional[str] = None
    name: Optional[str] = None
    longitude: float = 0.0
    latitude: float = 0.0
    claimed: bool = False
    organization_number: Optional[str] = None
    country_code: Optional[str] = None
    place_state: Optional[str] = None
    followers_count: int = 0
    opening_hours: Optional[OpeningHours] = None
    categories: List[CategoryTreeApiDto] = field(default_factory=list)
    feature_data: List[IndividualFeatureDataApiDto] = field(default_factory=list)
    bar_specialities: List[BarSpecialityEsDto] = field(default_factory=list)
    bar_types: List[BarTypeEsDto] = field(default_factory=list)
    brands: List[PlaceSelectedBrandApiDto] = field(default_factory=list)
    cuisines: List[CuisineEsDto] = field(default_factory=list)
    meal_types: List[MealTypeApiDto] = field(default_factory=list)
    parking: List[ParkingApiDto] = field(default_factory=list)
    payment_options: List[PaymentOptionApiDto] = field(default_factory=list)
    eating_suitabilities: List[EatingSuitabilityApiDto] = field(default_factory=list)
    take_aways: List[TakeAwayApiDto] = field(default_factory=list)
    wear_price_profiles: List[WearPriceProfileEsDto] = field(default_factory=list)
    menus: List[MenuEsDto] = field(default_factory=list)
    logo_url: Optional[ImageUrls] = None
    image_url: Optional[ImageUrls] = None
    wheelchair_accessible: Optional[bool] = None
    wifi: Optional[bool] = None
    outdoor_seating: Optional[bool] = None
    save_food_and_money: Optional[bool] = None
    place_type: Optional[PlaceType] = None
    mall: Optional[PlaceBasicApiDto] = None
    price_main_dish: Optional[PriceMainDishApiDto] = None
    places: List[PlaceBasicApiDto] = field(default_factory=list)
    other_services: List[MallOtherServiceApiDto] = field(default_factory=list)
    floor: Optional[str] = None
    time_zone_dto: Optional[TimeZoneDto] = None
    business_id: Optional[int] = None
    contact: Optional[PlaceContact] = None
    address: Optional[PlaceAddress] = None


Python GetFollowingListRequest DTOs

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

HTTP + JSV

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

GET /place/GetFollowingList HTTP/1.1 
Host: unstable-consumer-api.brovs.com 
Accept: text/jsv
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	places: 
	[
		{
			id: 0,
			overview: String,
			name: String,
			longitude: 0,
			latitude: 0,
			claimed: False,
			organizationNumber: String,
			countryCode: String,
			placeState: String,
			followersCount: 0,
			openingHours: 
			{
				weekly: 
				{
					monday: 
					{
						openAtHour: 0,
						openAtMinute: 0,
						closeAtHour: 0,
						closeAtMinute: 0
					},
					tuesday: 
					{
						openAtHour: 0,
						openAtMinute: 0,
						closeAtHour: 0,
						closeAtMinute: 0
					},
					wednesday: 
					{
						openAtHour: 0,
						openAtMinute: 0,
						closeAtHour: 0,
						closeAtMinute: 0
					},
					thursday: 
					{
						openAtHour: 0,
						openAtMinute: 0,
						closeAtHour: 0,
						closeAtMinute: 0
					},
					friday: 
					{
						openAtHour: 0,
						openAtMinute: 0,
						closeAtHour: 0,
						closeAtMinute: 0
					},
					saturday: 
					{
						openAtHour: 0,
						openAtMinute: 0,
						closeAtHour: 0,
						closeAtMinute: 0
					},
					sunday: 
					{
						openAtHour: 0,
						openAtMinute: 0,
						closeAtHour: 0,
						closeAtMinute: 0
					}
				}
			},
			categories: 
			[
				{
					name: String,
					slug: String,
					absoluteSlug: String,
					imageUrl: String,
					allImageUrl: String,
					iconImageUrl: String,
					position: 0,
					children: 
					[
						{
							name: String,
							slug: String,
							absoluteSlug: String,
							imageUrl: String,
							allImageUrl: String,
							iconImageUrl: String,
							position: 0,
							children: 
							[
								{
									name: String,
									slug: String,
									absoluteSlug: String,
									imageUrl: String,
									allImageUrl: String,
									iconImageUrl: String,
									position: 0
								}
							]
						}
					]
				}
			],
			featureData: 
			[
				{
					slug: BarSpeciality,
					label: String
				}
			],
			barSpecialities: 
			[
				{
					slug: String,
					title: String
				}
			],
			barTypes: 
			[
				{
					slug: String,
					title: String
				}
			],
			brands: 
			[
				{
					brand: 
					{
						name: String
					},
					categoryAbsoluteSlugs: 
					[
						String
					],
					placeCustomBrand: 
					{
						name: String
					}
				}
			],
			cuisines: 
			[
				{
					label: String,
					slug: String
				}
			],
			mealTypes: 
			[
				{
					label: String,
					slug: String
				}
			],
			parking: 
			[
				{
					label: String,
					slug: StreetParking
				}
			],
			paymentOptions: 
			[
				{
					label: String,
					slug: Visa
				}
			],
			eatingSuitabilities: 
			[
				{
					label: String,
					slug: String
				}
			],
			takeAways: 
			[
				{
					label: String,
					slug: String
				}
			],
			wearPriceProfiles: 
			[
				{
					slug: String,
					label: String
				}
			],
			menus: 
			[
				{
					name: String,
					url: String,
					position: 0
				}
			],
			logoUrl: 
			{
				preview: String,
				small: String,
				medium: String,
				large: String
			},
			imageUrl: 
			{
				preview: String,
				small: String,
				medium: String,
				large: String
			},
			wheelchairAccessible: False,
			wifi: False,
			outdoorSeating: False,
			saveFoodAndMoney: False,
			placeType: Mall,
			mall: 
			{
				id: 0,
				overview: String,
				name: String,
				longitude: 0,
				latitude: 0,
				claimed: False,
				organizationNumber: String,
				countryCode: String,
				openingHours: 
				{
					weekly: 
					{
						monday: 
						{
							openAtHour: 0,
							openAtMinute: 0,
							closeAtHour: 0,
							closeAtMinute: 0
						},
						tuesday: 
						{
							openAtHour: 0,
							openAtMinute: 0,
							closeAtHour: 0,
							closeAtMinute: 0
						},
						wednesday: 
						{
							openAtHour: 0,
							openAtMinute: 0,
							closeAtHour: 0,
							closeAtMinute: 0
						},
						thursday: 
						{
							openAtHour: 0,
							openAtMinute: 0,
							closeAtHour: 0,
							closeAtMinute: 0
						},
						friday: 
						{
							openAtHour: 0,
							openAtMinute: 0,
							closeAtHour: 0,
							closeAtMinute: 0
						},
						saturday: 
						{
							openAtHour: 0,
							openAtMinute: 0,
							closeAtHour: 0,
							closeAtMinute: 0
						},
						sunday: 
						{
							openAtHour: 0,
							openAtMinute: 0,
							closeAtHour: 0,
							closeAtMinute: 0
						}
					}
				},
				wheelchairAccessible: False,
				wifi: False,
				outdoorSeating: False,
				saveFoodAndMoney: False,
				placeType: Mall,
				priceMainDish: 
				{
					title: String,
					slug: Value
				},
				timeZoneDto: 
				{
					baseUtcOffset: PT0S,
					daylightName: String,
					displayName: String,
					id: String,
					standardName: String,
					supportsDaylightSavingTime: False
				},
				businessId: 0,
				contact: 
				{
					phone: String,
					email: String,
					website: String,
					webShop: String
				},
				address: 
				{
					street: String,
					postalCode: String,
					region: String,
					countryCode: String
				},
				categories: 
				[
					{
						name: String,
						slug: String,
						absoluteSlug: String,
						imageUrl: String,
						allImageUrl: String,
						iconImageUrl: String,
						position: 0,
						children: 
						[
							{
								name: String,
								slug: String,
								absoluteSlug: String,
								imageUrl: String,
								allImageUrl: String,
								iconImageUrl: String,
								position: 0,
								children: 
								[
									{
										name: String,
										slug: String,
										absoluteSlug: String,
										imageUrl: String,
										allImageUrl: String,
										iconImageUrl: String,
										position: 0
									}
								]
							}
						]
					}
				],
				logoUrl: 
				{
					preview: String,
					small: String,
					medium: String,
					large: String
				},
				imageUrl: 
				{
					preview: String,
					small: String,
					medium: String,
					large: String
				},
				wearPriceProfiles: 
				[
					{
						slug: String,
						label: String
					}
				],
				brands: 
				[
					{
						brand: 
						{
							name: String
						},
						categoryAbsoluteSlugs: 
						[
							String
						],
						placeCustomBrand: 
						{
							name: String
						}
					}
				],
				floor: String
			},
			priceMainDish: 
			{
				title: String,
				slug: Value
			},
			places: 
			[
				{
					id: 0,
					overview: String,
					name: String,
					longitude: 0,
					latitude: 0,
					claimed: False,
					organizationNumber: String,
					countryCode: String,
					openingHours: 
					{
						weekly: 
						{
							monday: 
							{
								openAtHour: 0,
								openAtMinute: 0,
								closeAtHour: 0,
								closeAtMinute: 0
							},
							tuesday: 
							{
								openAtHour: 0,
								openAtMinute: 0,
								closeAtHour: 0,
								closeAtMinute: 0
							},
							wednesday: 
							{
								openAtHour: 0,
								openAtMinute: 0,
								closeAtHour: 0,
								closeAtMinute: 0
							},
							thursday: 
							{
								openAtHour: 0,
								openAtMinute: 0,
								closeAtHour: 0,
								closeAtMinute: 0
							},
							friday: 
							{
								openAtHour: 0,
								openAtMinute: 0,
								closeAtHour: 0,
								closeAtMinute: 0
							},
							saturday: 
							{
								openAtHour: 0,
								openAtMinute: 0,
								closeAtHour: 0,
								closeAtMinute: 0
							},
							sunday: 
							{
								openAtHour: 0,
								openAtMinute: 0,
								closeAtHour: 0,
								closeAtMinute: 0
							}
						}
					},
					wheelchairAccessible: False,
					wifi: False,
					outdoorSeating: False,
					saveFoodAndMoney: False,
					placeType: Mall,
					priceMainDish: 
					{
						title: String,
						slug: Value
					},
					timeZoneDto: 
					{
						baseUtcOffset: PT0S,
						daylightName: String,
						displayName: String,
						id: String,
						standardName: String,
						supportsDaylightSavingTime: False
					},
					businessId: 0,
					contact: 
					{
						phone: String,
						email: String,
						website: String,
						webShop: String
					},
					address: 
					{
						street: String,
						postalCode: String,
						region: String,
						countryCode: String
					},
					categories: 
					[
						{
							name: String,
							slug: String,
							absoluteSlug: String,
							imageUrl: String,
							allImageUrl: String,
							iconImageUrl: String,
							position: 0,
							children: 
							[
								{
									name: String,
									slug: String,
									absoluteSlug: String,
									imageUrl: String,
									allImageUrl: String,
									iconImageUrl: String,
									position: 0,
									children: 
									[
										{
											name: String,
											slug: String,
											absoluteSlug: String,
											imageUrl: String,
											allImageUrl: String,
											iconImageUrl: String,
											position: 0
										}
									]
								}
							]
						}
					],
					logoUrl: 
					{
						preview: String,
						small: String,
						medium: String,
						large: String
					},
					imageUrl: 
					{
						preview: String,
						small: String,
						medium: String,
						large: String
					},
					wearPriceProfiles: 
					[
						{
							slug: String,
							label: String
						}
					],
					brands: 
					[
						{
							brand: 
							{
								name: String
							},
							categoryAbsoluteSlugs: 
							[
								String
							],
							placeCustomBrand: 
							{
								name: String
							}
						}
					],
					floor: String
				}
			],
			otherServices: 
			[
				{
					serviceName: String,
					floor: String
				}
			],
			floor: String,
			timeZoneDto: 
			{
				baseUtcOffset: PT0S,
				daylightName: String,
				displayName: String,
				id: String,
				standardName: String,
				supportsDaylightSavingTime: False
			},
			businessId: 0,
			contact: 
			{
				phone: String,
				email: String,
				website: String,
				webShop: String
			},
			address: 
			{
				street: String,
				postalCode: String,
				region: String,
				countryCode: String
			}
		}
	]
}