| POST | /user/login |
|---|
"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;
}
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 VenueData {
/** @param {{venueId?:number,name?:string,registeredDate?:string,venueCode?:string,isCoordinator?:boolean,facilities?:FacilityData[],latitude?:number,longitude?:number,hasLocation?:boolean,logoUrl?:string,leadTime?:number,venueInfo?:string,allowGuests?:boolean,contactNumber?:string}} [init] */
constructor(init) { Object.assign(this, init) }
/** @type {number} */
venueId;
/** @type {string} */
name;
/** @type {string} */
registeredDate;
/** @type {string} */
venueCode;
/** @type {boolean} */
isCoordinator;
/** @type {FacilityData[]} */
facilities;
/** @type {number} */
latitude;
/** @type {number} */
longitude;
/** @type {boolean} */
hasLocation;
/** @type {string} */
logoUrl;
/** @type {number} */
leadTime;
/** @type {string} */
venueInfo;
/** @type {boolean} */
allowGuests;
/** @type {string} */
contactNumber;
}
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 VenueCustomField {
/** @param {{venueName?:string,venueId?:number,fields?:UserCustomFieldData[]}} [init] */
constructor(init) { Object.assign(this, init) }
/** @type {string} */
venueName;
/** @type {number} */
venueId;
/** @type {UserCustomFieldData[]} */
fields;
}
export class LoginData {
/** @param {{systemUserId?:number,name?:string,emailAddress?:string,mobileNumber?:string,refreshToken?:string,refreshTokenExpiry?:string,venues?:VenueData[],venueCustomFields?:VenueCustomField[]}} [init] */
constructor(init) { Object.assign(this, init) }
/** @type {number} */
systemUserId;
/** @type {string} */
name;
/** @type {string} */
emailAddress;
/** @type {string} */
mobileNumber;
/** @type {string} */
refreshToken;
/** @type {string} */
refreshTokenExpiry;
/** @type {VenueData[]} */
venues;
/** @type {VenueCustomField[]} */
venueCustomFields;
}
export class UserLoginResponse extends ApiServiceResponse {
/** @param {{registrationRequired?:boolean,data?:LoginData,description?:string,heading?:string,wasSuccessful?:boolean,modelState?:Object}} [init] */
constructor(init) { super(init); Object.assign(this, init) }
/** @type {boolean} */
registrationRequired;
/** @type {LoginData} */
data;
}
export class UserLogin extends ApiServiceRequest {
/** @param {{googleIdToken?:string,utcOffset?:number,emailAddress?:string,displayName?:string,apiKey?:string,latitude?:number,longitude?:number}} [init] */
constructor(init) { super(init); Object.assign(this, init) }
/** @type {string} */
googleIdToken;
/** @type {number} */
utcOffset;
/** @type {string} */
emailAddress;
/** @type {string} */
displayName;
}
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 /user/login HTTP/1.1
Host: reservation.api.dev.86degrees.com
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length
{
googleIdToken: String,
utcOffset: 0,
emailAddress: String,
displayName: String,
apiKey: String,
latitude: 0,
longitude: 0
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length
{
registrationRequired: False,
description: String,
heading: String,
wasSuccessful: False,
modelState: {}
}