Reservation Station API

<back to all web services

GetFacilitySchedule

Requires Authentication
"use strict";
export class ApiServiceRequest {
    /** @param {{apiKey?:string,latitude?:number,longitude?:number}} [init] */
    constructor(init) { Object.assign(this, init) }
    /**
     * @type {string}
     * @description The API Key required for authentication */
    apiKey;
    /**
     * @type {number}
     * @description Latitude of the user making this request */
    latitude;
    /**
     * @type {number}
     * @description Longitude of the user making this request */
    longitude;
}
export class ApiServiceResponse {
    /** @param {{description?:string,heading?:string,wasSuccessful?:boolean,modelState?:Object}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {string} */
    description;
    /** @type {string} */
    heading;
    /** @type {boolean} */
    wasSuccessful;
    /** @type {Object} */
    modelState;
}
/** @typedef {number} */
export var SlotStatus;
(function (SlotStatus) {
    SlotStatus[SlotStatus["Available"] = 0] = "Available"
    SlotStatus[SlotStatus["Closed"] = 1] = "Closed"
    SlotStatus[SlotStatus["Booked"] = 2] = "Booked"
    SlotStatus[SlotStatus["UserBooked"] = 3] = "UserBooked"
    SlotStatus[SlotStatus["GroupBooked"] = 4] = "GroupBooked"
    SlotStatus[SlotStatus["ToBook"] = 5] = "ToBook"
})(SlotStatus || (SlotStatus = {}));
export class UserCustomFieldData {
    /** @param {{id?:string,value?:string,name?:string,optional?:boolean}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {string} */
    id;
    /** @type {string} */
    value;
    /** @type {string} */
    name;
    /** @type {boolean} */
    optional;
}
export class GuestData {
    /** @param {{name?:string,emailAddress?:string,mobileNumber?:string,userCustomFields?:UserCustomFieldData[],isAlreadyUser?:boolean,systemUserId?:number}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {string} */
    name;
    /** @type {string} */
    emailAddress;
    /** @type {string} */
    mobileNumber;
    /** @type {UserCustomFieldData[]} */
    userCustomFields;
    /** @type {boolean} */
    isAlreadyUser;
    /** @type {number} */
    systemUserId;
}
export class SlotData {
    /** @param {{start?:string,end?:string,status?:SlotStatus,bookingId?:number,remindStart?:boolean,remind30Mins?:boolean,remind1Hour?:boolean,remind6Hours?:boolean,remind12Hours?:boolean,remind1Day?:boolean,remind1Week?:boolean,billableAmount?:number,bookedByName?:string,billableHours?:number,slotLength?:number,userData?:GuestData,extraRequirements?:string}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {string} */
    start;
    /** @type {string} */
    end;
    /** @type {SlotStatus} */
    status;
    /** @type {number} */
    bookingId;
    /** @type {boolean} */
    remindStart;
    /** @type {boolean} */
    remind30Mins;
    /** @type {boolean} */
    remind1Hour;
    /** @type {boolean} */
    remind6Hours;
    /** @type {boolean} */
    remind12Hours;
    /** @type {boolean} */
    remind1Day;
    /** @type {boolean} */
    remind1Week;
    /** @type {number} */
    billableAmount;
    /** @type {string} */
    bookedByName;
    /** @type {number} */
    billableHours;
    /** @type {number} */
    slotLength;
    /** @type {GuestData} */
    userData;
    /** @type {string} */
    extraRequirements;
}
export class ScheduleDayData {
    /** @param {{date?:string,slots?:SlotData[]}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {string} */
    date;
    /** @type {SlotData[]} */
    slots;
}
export class RatesItem {
    /** @param {{rate?:number,minutes?:number}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {number} */
    rate;
    /** @type {number} */
    minutes;
}
export class FacilityData {
    /** @param {{facilityId?:number,facilityGuid?:string,name?:string,description?:string,nextAvailable?:string,hasNextAvailable?:boolean,rates?:RatesItem[],themeColor?:string,bookingNotes?:string,leadTime?:number,venueId?:number,allowExtraRequirements?:boolean}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {number} */
    facilityId;
    /** @type {string} */
    facilityGuid;
    /** @type {string} */
    name;
    /** @type {string} */
    description;
    /** @type {string} */
    nextAvailable;
    /** @type {boolean} */
    hasNextAvailable;
    /** @type {RatesItem[]} */
    rates;
    /** @type {string} */
    themeColor;
    /** @type {string} */
    bookingNotes;
    /** @type {number} */
    leadTime;
    /** @type {number} */
    venueId;
    /** @type {boolean} */
    allowExtraRequirements;
}
export class GetFacilityScheduleResponse extends ApiServiceResponse {
    /** @param {{schedule?:ScheduleDayData[],bookAheadMaxDate?:string,openHour?:number,closeHour?:number,duration?:number,isCoordinator?:boolean,facilityTimeOffset?:number,facility?:FacilityData,venueName?:string,allowGuests?:boolean,allowExtraRequirements?:boolean,allowBookingInProgress?:boolean,description?:string,heading?:string,wasSuccessful?:boolean,modelState?:Object}} [init] */
    constructor(init) { super(init); Object.assign(this, init) }
    /** @type {ScheduleDayData[]} */
    schedule;
    /** @type {string} */
    bookAheadMaxDate;
    /** @type {number} */
    openHour;
    /** @type {number} */
    closeHour;
    /** @type {number} */
    duration;
    /** @type {boolean} */
    isCoordinator;
    /** @type {number} */
    facilityTimeOffset;
    /** @type {FacilityData} */
    facility;
    /** @type {string} */
    venueName;
    /** @type {boolean} */
    allowGuests;
    /** @type {boolean} */
    allowExtraRequirements;
    /** @type {boolean} */
    allowBookingInProgress;
}
export class GetFacilitySchedule extends ApiServiceRequest {
    /** @param {{facilityId?:number,start?:string,end?:string,apiKey?:string,latitude?:number,longitude?:number}} [init] */
    constructor(init) { super(init); Object.assign(this, init) }
    /** @type {number} */
    facilityId;
    /** @type {string} */
    start;
    /** @type {string} */
    end;
}

JavaScript GetFacilitySchedule 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/GetFacilitySchedule HTTP/1.1 
Host: reservation.api.dev.86degrees.com 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	facilityId: 0,
	start: 0001-01-01,
	end: 0001-01-01,
	apiKey: String,
	latitude: 0,
	longitude: 0
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	schedule: 
	[
		{
			date: String,
			slots: 
			[
				{
					start: String,
					end: String,
					status: 0,
					bookingId: 0,
					remindStart: False,
					remind30Mins: False,
					remind1Hour: False,
					remind6Hours: False,
					remind12Hours: False,
					remind1Day: False,
					remind1Week: False,
					billableAmount: 0,
					bookedByName: String,
					billableHours: 0,
					slotLength: 0,
					extraRequirements: String
				}
			]
		}
	],
	bookAheadMaxDate: String,
	openHour: 0,
	closeHour: 0,
	duration: 0,
	isCoordinator: False,
	facilityTimeOffset: 0,
	venueName: String,
	allowGuests: False,
	allowExtraRequirements: False,
	allowBookingInProgress: False,
	description: String,
	heading: String,
	wasSuccessful: False,
	modelState: {}
}