Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Inheritance is not considered correctly in all scenarios #423

Open
nickevansuk opened this issue Jun 29, 2023 · 0 comments
Open

Inheritance is not considered correctly in all scenarios #423

nickevansuk opened this issue Jun 29, 2023 · 0 comments

Comments

@nickevansuk
Copy link
Contributor

nickevansuk commented Jun 29, 2023

The error for the below JSON in a Orders feed is:

Required property provider is missing from IndividualFacilityUse.

This error would lead a developer to add the provider property to IndividualFacilityUse, which is also invalid, as the property should be added to the FacilityUse.

The error should instead respect the inheritance hierarchy and the error message should prefer the property to be added to the parent rather than the child in order to fulfil the requirements of the rule.

{
  "@type": "Order",
  "@context": [
    "https://openactive.io/",
    "https://openactive.io/ns-beta"
  ],
  "@id": "http://localhost:8080/openactive/booking/orders/21085685-8ad7-49be-a8d1-569cf4d5fc2d",
  "identifier": "21085685-8ad7-49be-a8d1-569cf4d5fc2d",
  "orderedItem": [
    {
      "@type": "OrderItem",
      "@id": "http://localhost:8080/openactive/booking/orders/21085685-8ad7-49be-a8d1-569cf4d5fc2d/individual-facility-use-slots/22201",
      "orderItemStatus": "https://openactive.io/SellerCancelled",
      "orderedItem": {
        "@type": "Slot",
        "@id": "http://localhost:8080/openactive/feed/facility-uses/23/individual-facility-uses/9/slots/14949",
        "startDate": "2023-07-05T11:00:00+01:00",
        "endDate": "2023-07-05T12:00:00+01:00",
        "duration": "PT1H",
        "facilityUse": {
          "@type": "IndividualFacilityUse",
          "@id": "http://localhost:8080/openactive/feed/facility-uses/23/individual-facility-uses/9",
          "name": "Court 1",
          "aggregateFacilityUse": {
            "@type": "FacilityUse",
            "@id": "http://localhost:8080/openactive/feed/facility-uses/23",
            "identifier": "23",
            "name": "Tennis courts at Botley Park",
            "url": "http://localhost:8080/openactive/locations/23",
            "facilityType": [
              {
                "@type": "Concept",
                "@id": "https://openactive.io/facility-types#becfafc0-c63f-444c-aed5-a3665f2d172d",
                "inScheme": "https://openactive.io/facility-types",
                "prefLabel": "Tennis Court"
              }
            ],
            "hoursAvailable": [
              {
                "@type": "OpeningHoursSpecification",
                "closes": "21:00:00",
                "dayOfWeek": [
                  "https://schema.org/Monday"
                ],
                "opens": "07:00:00"
              },
              {
                "@type": "OpeningHoursSpecification",
                "closes": "21:00:00",
                "dayOfWeek": [
                  "https://schema.org/Tuesday"
                ],
                "opens": "07:00:00"
              },
              {
                "@type": "OpeningHoursSpecification",
                "closes": "21:00:00",
                "dayOfWeek": [
                  "https://schema.org/Wednesday"
                ],
                "opens": "07:00:00"
              },
              {
                "@type": "OpeningHoursSpecification",
                "closes": "21:00:00",
                "dayOfWeek": [
                  "https://schema.org/Thursday"
                ],
                "opens": "07:00:00"
              },
              {
                "@type": "OpeningHoursSpecification",
                "closes": "21:00:00",
                "dayOfWeek": [
                  "https://schema.org/Friday"
                ],
                "opens": "07:00:00"
              },
              {
                "@type": "OpeningHoursSpecification",
                "closes": "21:00:00",
                "dayOfWeek": [
                  "https://schema.org/Saturday"
                ],
                "opens": "07:00:00"
              },
              {
                "@type": "OpeningHoursSpecification",
                "closes": "21:00:00",
                "dayOfWeek": [
                  "https://schema.org/Sunday"
                ],
                "opens": "07:00:00"
              }
            ],
            "location": {
              "@type": "Place",
              "@id": "http://localhost:8080/openactive/locations/23",
              "name": "Botley Park",
              "address": {
                "@type": "PostalAddress",
                "addressCountry": "GB",
                "addressRegion": "Oxfordshire",
                "addressLocality": "Oxford",
                "postalCode": "OX2 0BT",
                "streetAddress": "Botley Road"
              },
              "geo": {
                "@type": "GeoCoordinates",
                "latitude": 51.7520967,
                "longitude": -1.2782961
              }
            }
          }
        },
        "maximumUses": 1,
        "remainingUses": 1
      },
      "acceptedOffer": {
        "@type": "Offer",
        "@id": "http://localhost:8080/openactive/feed/facility-uses/23/individual-facility-uses/9/slots/14949/offers/base",
        "identifier": "base",
        "name": "1h tennis",
        "priceCurrency": "GBP",
        "price": 0
      },
      "accessCode": [
        {
          "@type": "PropertyValue",
          "name": "Access code",
          "description": "1234",
          "value": "defaultValue"
        }
      ]
    }
  ],
  "totalPaymentDue": {
    "@type": "PriceSpecification",
    "priceCurrency": "GBP",
    "price": 0
  }
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant