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.
import java.math.*;
import java.util.*;
import java.io.InputStream;
import net.servicestack.client.*;

public class dtos
{

    @ApiResponse(Description="No active reservation hold for the caller", StatusCode=404)
    public static class GetCurrentBookingReservation implements ICompany
    {
        /**
        * The company id, if empty will use the company id for the user you are logged in with.
        */
        @ApiMember(Description="The company id, if empty will use the company id for the user you are logged in with.")
        public UUID CompanyId = null;
        
        public UUID getCompanyId() { return CompanyId; }
        public GetCurrentBookingReservation setCompanyId(UUID value) { this.CompanyId = value; return this; }
    }

    public static class BookingReservationResponse
    {
        /**
        * The opaque session key that identifies the reservation.
        */
        @ApiMember(Description="The opaque session key that identifies the reservation.")
        public UUID SessionKey = null;

        /**
        * The company id.
        */
        @ApiMember(Description="The company id.")
        public UUID CompanyId = null;

        /**
        * The reserved service id.
        */
        @ApiMember(Description="The reserved service id.")
        public Integer ServiceId = null;

        /**
        * The reservation start.
        */
        @ApiMember(Description="The reservation start.")
        public Date From = null;

        /**
        * The reservation end.
        */
        @ApiMember(Description="The reservation end.")
        public Date To = null;

        /**
        * The BookingReservationStatus value.
        */
        @ApiMember(Description="The BookingReservationStatus value.")
        public Integer StatusCode = null;

        /**
        * The BookingReservationStatus name.
        */
        @ApiMember(Description="The BookingReservationStatus name.")
        public String StatusName = null;

        /**
        * When the hold expires (company-local time).
        */
        @ApiMember(Description="When the hold expires (company-local time).")
        public Date ExpirationDatetime = null;

        /**
        * 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.
        */
        @ApiMember(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.")
        public Date ServerTime = null;

        /**
        * Number of reserved spots.
        */
        @ApiMember(Description="Number of reserved spots.")
        public Integer NumberOfBookedSpots = null;

        /**
        * The computed price of the reservation, if any.
        */
        @ApiMember(Description="The computed price of the reservation, if any.")
        public BigDecimal Price = null;

        /**
        * The currency of the price, if any.
        */
        @ApiMember(Description="The currency of the price, if any.")
        public String CurrencyId = null;

        /**
        * Ids of the resources held by the reservation.
        */
        @ApiMember(Description="Ids of the resources held by the reservation.")
        public ArrayList<Integer> ResourceIds = new ArrayList<Integer>();

        /**
        * The full in-progress selection payload (wizard/session state) as JSON.
        */
        @ApiMember(Description="The full in-progress selection payload (wizard/session state) as JSON.")
        public String SelectionPayload = null;

        public ResponseStatus ResponseStatus = null;
        
        public UUID getSessionKey() { return SessionKey; }
        public BookingReservationResponse setSessionKey(UUID value) { this.SessionKey = value; return this; }
        public UUID getCompanyId() { return CompanyId; }
        public BookingReservationResponse setCompanyId(UUID value) { this.CompanyId = value; return this; }
        public Integer getServiceId() { return ServiceId; }
        public BookingReservationResponse setServiceId(Integer value) { this.ServiceId = value; return this; }
        public Date getFrom() { return From; }
        public BookingReservationResponse setFrom(Date value) { this.From = value; return this; }
        public Date getTo() { return To; }
        public BookingReservationResponse setTo(Date value) { this.To = value; return this; }
        public Integer getStatusCode() { return StatusCode; }
        public BookingReservationResponse setStatusCode(Integer value) { this.StatusCode = value; return this; }
        public String getStatusName() { return StatusName; }
        public BookingReservationResponse setStatusName(String value) { this.StatusName = value; return this; }
        public Date getExpirationDatetime() { return ExpirationDatetime; }
        public BookingReservationResponse setExpirationDatetime(Date value) { this.ExpirationDatetime = value; return this; }
        public Date getServerTime() { return ServerTime; }
        public BookingReservationResponse setServerTime(Date value) { this.ServerTime = value; return this; }
        public Integer getNumberOfBookedSpots() { return NumberOfBookedSpots; }
        public BookingReservationResponse setNumberOfBookedSpots(Integer value) { this.NumberOfBookedSpots = value; return this; }
        public BigDecimal getPrice() { return Price; }
        public BookingReservationResponse setPrice(BigDecimal value) { this.Price = value; return this; }
        public String getCurrencyId() { return CurrencyId; }
        public BookingReservationResponse setCurrencyId(String value) { this.CurrencyId = value; return this; }
        public ArrayList<Integer> getResourceIds() { return ResourceIds; }
        public BookingReservationResponse setResourceIds(ArrayList<Integer> value) { this.ResourceIds = value; return this; }
        public String getSelectionPayload() { return SelectionPayload; }
        public BookingReservationResponse setSelectionPayload(String value) { this.SelectionPayload = value; return this; }
        public ResponseStatus getResponseStatus() { return ResponseStatus; }
        public BookingReservationResponse setResponseStatus(ResponseStatus value) { this.ResponseStatus = value; return this; }
    }

}

Java GetCurrentBookingReservation DTOs

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

HTTP + CSV

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/csv
HTTP/1.1 200 OK
Content-Type: text/csv
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"}}}