POST | /share/share-place-link-used | A share place link was used | Validates the JWT token with the identity of the sharing user and the shared place and returns relevant information. |
---|
import Foundation
import ServiceStack
public class SharePlaceLinkUsedRequest : IPost, Codable
{
public var sharePlaceToken:String
public var locale:Locale?
required public init(){}
}
public enum Locale : String, Codable
{
case EnUs
case NbNo
}
public class SharePlaceLinkUsedResponse : Codable
{
public var sharingUser:SharingUser
public var place:PlaceApiDto
public var state:SharingState
required public init(){}
}
public class SharingUser : Codable
{
public var firstName:String
public var lastName:String
public var profilePhotoUrl:String
required public init(){}
}
public class PlaceApiDto : Codable
{
public var id:Int
public var guid:String
public var overview:String
public var name:String
public var longitude:Float
public var latitude:Float
public var claimed:Bool
public var organizationNumber:String
public var countryCode:String
public var placeState:String
public var followersCount:Int
public var openingHours:OpeningHours
public var categories:[CategoryTreeApiDto] = []
public var featureData:[IndividualFeatureDataApiDto] = []
public var barSpecialities:[BarSpecialityEsDto] = []
public var barTypes:[BarTypeEsDto] = []
public var brands:[PlaceSelectedBrandApiDto] = []
public var cuisines:[CuisineEsDto] = []
public var mealTypes:[MealTypeApiDto] = []
public var parking:[ParkingApiDto] = []
public var paymentOptions:[PaymentOptionApiDto] = []
public var eatingSuitabilities:[EatingSuitabilityApiDto] = []
public var takeAways:[TakeAwayApiDto] = []
public var wearPriceProfiles:[WearPriceProfileEsDto] = []
public var menus:[MenuEsDto] = []
public var logoUrl:ImageUrls
public var imageUrl:ImageUrls
public var wheelchairAccessible:Bool?
public var wifi:Bool?
public var outdoorSeating:Bool?
public var saveFoodAndMoney:Bool?
public var placeType:PlaceType
public var mall:PlaceBasicApiDto
public var priceMainDish:PriceMainDishApiDto
public var places:[PlaceBasicApiDto] = []
public var otherServices:[MallOtherServiceApiDto] = []
public var floor:String
public var timeZoneDto:TimeZoneDto
public var businessId:Int?
public var contact:PlaceContact
public var address:PlaceAddress
required public init(){}
}
public class OpeningHours : Codable
{
public var weekly:WeeklyOpeningHours
required public init(){}
}
public class WeeklyOpeningHours : Codable
{
public var monday:OpeningHour
public var tuesday:OpeningHour
public var wednesday:OpeningHour
public var thursday:OpeningHour
public var friday:OpeningHour
public var saturday:OpeningHour
public var sunday:OpeningHour
required public init(){}
}
public class OpeningHour : Codable
{
public var openAtHour:Int
public var openAtMinute:Int
public var closeAtHour:Int
public var closeAtMinute:Int
required public init(){}
}
public class CategoryTreeApiDto : Codable
{
public var name:String
public var slug:String
public var absoluteSlug:String
public var imageUrl:String
public var allImageUrl:String
public var iconImageUrl:String
public var position:Int
public var children:[CategoryTreeApiDto] = []
required public init(){}
}
public class IndividualFeatureDataApiDto : Codable
{
public var slug:FeatureType
public var label:String
required public init(){}
}
public enum FeatureType : String, Codable
{
case BarSpeciality
case BarType
case Cuisine
case SaveFoodAndMoney
case MealType
case Menu
case OutdoorSeating
case Parking
case PaymentOptions
case PriceMainDish
case SubCategories
case SubCategoriesAndBrands
case EatingSuitabilities
case TakeAway
case WearPriceProfile
case WheelChairAccessible
case Wifi
case WebShop
case Filtering
}
public class BarSpecialityEsDto : Codable
{
public var slug:String
public var title:String
required public init(){}
}
public class BarTypeEsDto : Codable
{
public var slug:String
public var title:String
required public init(){}
}
public class PlaceSelectedBrandApiDto : Codable
{
public var brand:BrandApiDto
public var categoryAbsoluteSlugs:[String] = []
public var placeCustomBrand:PlaceCustomBrandApiDto
required public init(){}
}
public class BrandApiDto : Codable
{
public var name:String
required public init(){}
}
public class PlaceCustomBrandApiDto : Codable
{
public var name:String
required public init(){}
}
public class CuisineEsDto : Codable
{
public var label:String
public var slug:String
required public init(){}
}
public class MealTypeApiDto : Codable
{
public var label:String
public var slug:String
required public init(){}
}
public class ParkingApiDto : Codable
{
public var label:String
public var slug:Parking
required public init(){}
}
public enum Parking : String, Codable
{
case StreetParking
case ParkingGarageNearby
}
public class PaymentOptionApiDto : Codable
{
public var label:String
public var slug:PaymentOption
required public init(){}
}
public enum PaymentOption : String, Codable
{
case Visa
case MasterCard
case AmericanExpress
case Diners
case Vipps
}
public class EatingSuitabilityApiDto : Codable
{
public var label:String
public var slug:String
required public init(){}
}
public class TakeAwayApiDto : Codable
{
public var label:String
public var slug:String
required public init(){}
}
public class WearPriceProfileEsDto : Codable
{
public var slug:String
public var label:String
required public init(){}
}
public class MenuEsDto : Codable
{
public var name:String
public var url:String
public var position:Int
required public init(){}
}
public class ImageUrls : Codable
{
public var preview:String
public var small:String
public var medium:String
public var large:String
required public init(){}
}
public enum PlaceType : String, Codable
{
case Mall
case Regular
}
public class PlaceBasicApiDto : Codable
{
public var id:Int
public var guid:String
public var overview:String
public var name:String
public var longitude:Float
public var latitude:Float
public var claimed:Bool
public var organizationNumber:String
public var countryCode:String
public var openingHours:OpeningHours
public var wheelchairAccessible:Bool?
public var wifi:Bool?
public var outdoorSeating:Bool?
public var saveFoodAndMoney:Bool?
public var placeType:PlaceType
public var priceMainDish:PriceMainDishApiDto
public var timeZoneDto:TimeZoneDto
public var businessId:Int?
public var contact:PlaceContact
public var address:PlaceAddress
public var categories:[CategoryTreeApiDto] = []
public var logoUrl:ImageUrls
public var imageUrl:ImageUrls
public var wearPriceProfiles:[WearPriceProfileEsDto] = []
public var brands:[PlaceSelectedBrandApiDto] = []
public var floor:String
required public init(){}
}
public class PriceMainDishApiDto : Codable
{
public var title:String
public var slug:PriceMainDish
required public init(){}
}
public enum PriceMainDish : String, Codable
{
case Value
case Medium
case High
case FineDining
}
public class TimeZoneDto : Codable
{
@TimeSpan public var baseUtcOffset:TimeInterval
public var daylightName:String
public var displayName:String
public var id:String
public var standardName:String
public var supportsDaylightSavingTime:Bool
required public init(){}
}
public class PlaceContact : Codable
{
public var phone:String
public var email:String
public var website:String
public var webShop:String
required public init(){}
}
public class PlaceAddress : Codable
{
public var street:String
public var postalCode:String
public var region:String
public var countryCode:String
required public init(){}
}
public class MallOtherServiceApiDto : Codable
{
public var serviceName:String
public var floor:String
required public init(){}
}
public enum SharingState : String, Codable
{
case Teaser
case Awarded
case SelfShare
case Expired
}
Swift SharePlaceLinkUsedRequest DTOs
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.
POST /share/share-place-link-used HTTP/1.1
Host: unstable-consumer-api.brovs.com
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length
{
sharePlaceToken: String,
locale: EnUs
}
HTTP/1.1 200 OK Content-Type: text/jsv Content-Length: length { sharingUser: { firstName: String, lastName: String, profilePhotoUrl: String }, place: { 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 } }, state: Teaser }