BokaMera.API.Host

<back to all web services

ExtendBookingReservation

The following routes are available for this service:
PUT/bookingreservations/{SessionKey}/extendExtend a booking reservation holdPushes the hold expiration of an AwaitingPayment reservation forward (bounded, never past the slot start) so the customer can retry a failed Stripe payment without losing the slot. The slot availability is re-checked; if it was taken in the meantime the request is rejected with Conflict.
Imports System
Imports System.IO
Imports System.Collections
Imports System.Collections.Generic
Imports System.Runtime.Serialization
Imports ServiceStack
Imports ServiceStack.DataAnnotations
Imports BokaMera.API.ServiceModel.Dtos

Namespace Global

    Namespace BokaMera.API.ServiceModel.Dtos

        Public Partial Class BookingReservationResponse
            '''<Summary>
            '''The opaque session key that identifies the reservation.
            '''</Summary>
            <ApiMember(Description:="The opaque session key that identifies the reservation.")>
            Public Overridable Property SessionKey As Guid

            '''<Summary>
            '''The company id.
            '''</Summary>
            <ApiMember(Description:="The company id.")>
            Public Overridable Property CompanyId As Guid

            '''<Summary>
            '''The reserved service id.
            '''</Summary>
            <ApiMember(Description:="The reserved service id.")>
            Public Overridable Property ServiceId As Integer

            '''<Summary>
            '''The reservation start.
            '''</Summary>
            <ApiMember(Description:="The reservation start.")>
            Public Overridable Property From As Date

            '''<Summary>
            '''The reservation end.
            '''</Summary>
            <ApiMember(Description:="The reservation end.")>
            Public Overridable Property [To] As Date

            '''<Summary>
            '''The BookingReservationStatus value.
            '''</Summary>
            <ApiMember(Description:="The BookingReservationStatus value.")>
            Public Overridable Property StatusCode As Integer

            '''<Summary>
            '''The BookingReservationStatus name.
            '''</Summary>
            <ApiMember(Description:="The BookingReservationStatus name.")>
            Public Overridable Property StatusName As String

            '''<Summary>
            '''When the hold expires (company-local time).
            '''</Summary>
            <ApiMember(Description:="When the hold expires (company-local time).")>
            Public Overridable Property ExpirationDatetime As Date

            '''<Summary>
            '''Number of reserved spots.
            '''</Summary>
            <ApiMember(Description:="Number of reserved spots.")>
            Public Overridable Property NumberOfBookedSpots As Integer

            '''<Summary>
            '''The computed price of the reservation, if any.
            '''</Summary>
            <ApiMember(Description:="The computed price of the reservation, if any.")>
            Public Overridable Property Price As Decimal?

            '''<Summary>
            '''The currency of the price, if any.
            '''</Summary>
            <ApiMember(Description:="The currency of the price, if any.")>
            Public Overridable Property CurrencyId As String

            '''<Summary>
            '''Ids of the resources held by the reservation.
            '''</Summary>
            <ApiMember(Description:="Ids of the resources held by the reservation.")>
            Public Overridable Property ResourceIds As List(Of Integer) = New List(Of Integer)

            '''<Summary>
            '''The full in-progress selection payload (wizard/session state) as JSON.
            '''</Summary>
            <ApiMember(Description:="The full in-progress selection payload (wizard/session state) as JSON.")>
            Public Overridable Property SelectionPayload As String

            Public Overridable Property ResponseStatus As ResponseStatus
        End Class

        <ApiResponse(Description:="You were unauthorized to call this service", StatusCode:=401)>
        <ApiResponse(Description:="No reservation found for the given session key", StatusCode:=404)>
        <ApiResponse(Description:="The reservation is not awaiting payment or the selected slot is no longer available", StatusCode:=409)>
        Public Partial Class ExtendBookingReservation
            Implements ICompany
            '''<Summary>
            '''The opaque session key that identifies the reservation.
            '''</Summary>
            <ApiMember(Description:="The opaque session key that identifies the reservation.", IsRequired:=true, ParameterType:="path")>
            Public Overridable Property SessionKey As Guid

            '''<Summary>
            '''The company id, if empty will use the company id for the user you are logged in with.
            '''</Summary>
            <ApiMember(Description:="The company id, if empty will use the company id for the user you are logged in with.")>
            Public Overridable Property CompanyId As Guid? Implements ICompany.CompanyId
        End Class
    End Namespace
End Namespace

VB.NET ExtendBookingReservation 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.

PUT /bookingreservations/{SessionKey}/extend HTTP/1.1 
Host: testapi.bokamera.se 
Accept: text/jsonl
Content-Type: text/jsonl
Content-Length: length

{"CompanyId":"00000000-0000-0000-0000-000000000000"}
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"}}}