BokaMera.API.Host

<back to all web services

GetCurrentBookingReservation

The following routes are available for this service:
GET/bookingreservations/currentGet the caller's current booking reservation hold (from cookie)Resolves the caller's active reservation hold from the bm_hold cookie so a reopened browser or a second tab can resume the same hold instead of creating a second one. Returns the full selection (including the entered personal details) when the cookie proves this browser owns the hold. 404 when there is no active hold, in which case the stale cookie is cleared.
"use strict";
export class BookingReservationResponse {
    /** @param {{SessionKey?:string,CompanyId?:string,ServiceId?:number,From?:string,To?:string,StatusCode?:number,StatusName?:string,ExpirationDatetime?:string,ServerTime?:string,NumberOfBookedSpots?:number,Price?:number,CurrencyId?:string,ResourceIds?:number[],SelectionPayload?:string,ResponseStatus?:ResponseStatus}} [init] */
    constructor(init) { Object.assign(this, init) }
    /**
     * @type {string}
     * @description The opaque session key that identifies the reservation. */
    SessionKey;
    /**
     * @type {string}
     * @description The company id. */
    CompanyId;
    /**
     * @type {number}
     * @description The reserved service id. */
    ServiceId;
    /**
     * @type {string}
     * @description The reservation start. */
    From;
    /**
     * @type {string}
     * @description The reservation end. */
    To;
    /**
     * @type {number}
     * @description The BookingReservationStatus value. */
    StatusCode;
    /**
     * @type {string}
     * @description The BookingReservationStatus name. */
    StatusName;
    /**
     * @type {string}
     * @description When the hold expires (company-local time). */
    ExpirationDatetime;
    /**
     * @type {string}
     * @description The company's current time, in the same company-local frame as ExpirationDatetime. Clients compute the remaining hold as (ExpirationDatetime - ServerTime) so a countdown is correct regardless of the viewer's timezone or clock skew. */
    ServerTime;
    /**
     * @type {number}
     * @description Number of reserved spots. */
    NumberOfBookedSpots;
    /**
     * @type {?number}
     * @description The computed price of the reservation, if any. */
    Price;
    /**
     * @type {string}
     * @description The currency of the price, if any. */
    CurrencyId;
    /**
     * @type {number[]}
     * @description Ids of the resources held by the reservation. */
    ResourceIds = [];
    /**
     * @type {string}
     * @description The full in-progress selection payload (wizard/session state) as JSON. */
    SelectionPayload;
    /** @type {ResponseStatus} */
    ResponseStatus;
}
export class GetCurrentBookingReservation {
    /** @param {{CompanyId?:string}} [init] */
    constructor(init) { Object.assign(this, init) }
    /**
     * @type {?string}
     * @description The company id, if empty will use the company id for the user you are logged in with. */
    CompanyId;
}

JavaScript GetCurrentBookingReservation DTOs

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

HTTP + OTHER

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

GET /bookingreservations/current HTTP/1.1 
Host: testapi.bokamera.se 
Accept: text/jsonl
HTTP/1.1 200 OK
Content-Type: text/jsonl
Content-Length: length

{"ServiceId":0,"StatusCode":0,"StatusName":"String","NumberOfBookedSpots":0,"Price":0,"CurrencyId":"String","ResourceIds":[0],"SelectionPayload":"String","ResponseStatus":{"ErrorCode":"String","Message":"String","StackTrace":"String","Errors":[{"ErrorCode":"String","FieldName":"String","Message":"String","Meta":{"String":"String"}}],"Meta":{"String":"String"}}}