Reservation Station API

<back to all web services

GetFacilityStatus

Requires Authentication
import Foundation
import ServiceStack

public class GetFacilityStatus : ApiServiceRequest
{
    public var facilityGuid:String

    required public init(){ super.init() }

    private enum CodingKeys : String, CodingKey {
        case facilityGuid
    }

    required public init(from decoder: Decoder) throws {
        try super.init(from: decoder)
        let container = try decoder.container(keyedBy: CodingKeys.self)
        facilityGuid = try container.decodeIfPresent(String.self, forKey: .facilityGuid)
    }

    public override func encode(to encoder: Encoder) throws {
        try super.encode(to: encoder)
        var container = encoder.container(keyedBy: CodingKeys.self)
        if facilityGuid != nil { try container.encode(facilityGuid, forKey: .facilityGuid) }
    }
}

public class ApiServiceRequest : IServiceRequest, IHasApiKey, IHasDeviceInfo, Codable
{
    /**
    * The API Key required for authentication
    */
    // @ApiMember(DataType="string", Description="The API Key required for authentication", IsRequired=true)
    public var apiKey:String

    /**
    * Latitude of the user making this request
    */
    // @ApiMember(DataType="double", Description="Latitude of the user making this request")
    public var latitude:Double

    /**
    * Longitude of the user making this request
    */
    // @ApiMember(DataType="double", Description="Longitude of the user making this request")
    public var longitude:Double

    required public init(){}
}

public class GetFacilityStatusResponse : ApiServiceResponse
{
    public var facilityStatus:FacilityStatusData
    public var facilityData:FacilityData

    required public init(){ super.init() }

    private enum CodingKeys : String, CodingKey {
        case facilityStatus
        case facilityData
    }

    required public init(from decoder: Decoder) throws {
        try super.init(from: decoder)
        let container = try decoder.container(keyedBy: CodingKeys.self)
        facilityStatus = try container.decodeIfPresent(FacilityStatusData.self, forKey: .facilityStatus)
        facilityData = try container.decodeIfPresent(FacilityData.self, forKey: .facilityData)
    }

    public override func encode(to encoder: Encoder) throws {
        try super.encode(to: encoder)
        var container = encoder.container(keyedBy: CodingKeys.self)
        if facilityStatus != nil { try container.encode(facilityStatus, forKey: .facilityStatus) }
        if facilityData != nil { try container.encode(facilityData, forKey: .facilityData) }
    }
}

public class ApiServiceResponse : IServiceResponse, Codable
{
    public var Description:String
    public var heading:String
    public var wasSuccessful:Bool
    //modelState:Object ignored. Type could not be extended in Swift

    required public init(){}
}

public class FacilityStatusData : Codable
{
    public var facilityName:String
    public var themeColor:String
    public var venueLogoUrl:String
    public var inProgress:Bool
    public var currentReservationName:String
    public var currentReservationStart:String
    public var currentReservationEnd:String
    public var currentReservationId:Int
    public var hasNextReservation:Bool
    public var nextReservationName:String
    public var nextReservationStart:String
    public var nextReservationEnd:String
    public var nextReservationId:Int
    public var freeUntilNextBooking:Bool

    required public init(){}
}

public class FacilityData : Codable
{
    public var facilityId:Int
    public var facilityGuid:String
    public var name:String
    public var Description:String
    public var nextAvailable:String
    public var hasNextAvailable:Bool
    public var rates:[RatesItem] = []
    public var themeColor:String
    public var bookingNotes:String
    public var leadTime:Int
    public var venueId:Int
    public var allowExtraRequirements:Bool

    required public init(){}
}

public class RatesItem : Codable
{
    public var rate:Double
    public var minutes:Int

    required public init(){}
}


Swift GetFacilityStatus 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.

POST /jsv/reply/GetFacilityStatus HTTP/1.1 
Host: reservation.api.dev.86degrees.com 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	facilityGuid: String,
	apiKey: String,
	latitude: 0,
	longitude: 0
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	description: String,
	heading: String,
	wasSuccessful: False,
	modelState: {}
}