Skip to content

B is not idempotent for identical requests #100

@civsiv

Description

@civsiv

The Booking Specification states the following:
"note call to B is idempotent for the case where OrderItems match".

However this is not the case for two identical B requests. An OrderAlreadyExistsError error is returned.

An example of the B request sent is below:

{
    "@context": [
        "https://openactive.io/"
    ],
    "broker": {
        "id": "google",
        "name": "Google",
        "type": "Organization"
    },
    "brokerRole": "https://openactive.io/AgentBroker",
    "customer": {
        "email": "test@example.com",
        "familyName": "Doe",
        "givenName": "Jane",
        "id": "0",
        "telephone": "+1 800-789-7890",
        "type": "Person"
    },
    "orderedItem": [
        {
            "acceptedOffer": {
                "id": "https://iminoareferenceimplementation.azurewebsites.net/api/identifiers/session-series/209#/offers/0",
                "type": "Offer"
            },
            "orderedItem": {
                "id": "https://iminoareferenceimplementation.azurewebsites.net/api/identifiers/scheduled-sessions/209/events/2084",
                "type": "ScheduledSession"
            },
            "position": 0,
            "type": "OrderItem"
        }
    ],
    "seller": {
        "id": "https://iminoareferenceimplementation.azurewebsites.net/api/identifiers/sellers/1",
        "type": "Organization"
    },
    "totalPaymentDue": {
        "price": 0,
        "priceCurrency": "GBP",
        "type": "PriceSpecification"
    },
    "type": "Order"
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions