Skip to content

Commit 16c51ee

Browse files
committed
Highlighting additional issues
1 parent 58b5aed commit 16c51ee

File tree

2 files changed

+13
-9
lines changed

2 files changed

+13
-9
lines changed

EditorsDraft/edit.html

+3-1
Original file line numberDiff line numberDiff line change
@@ -761,6 +761,8 @@
761761

762762
The cancellation may be requested by either the **Customer** or the **Seller**, and results in an updated `Order` item on the RPDE feed. Once a cancellation status is placed on an `OrderItem` within an `Order` in the RPDE feed it is assumed by the **Booking System** to have been processed, and it MUST NOT be reversed. A new `Order` will need to created to reinstate the booking.
763763

764+
<div class="issue" data-number="97"></div>
765+
764766
### Customer requested cancellation
765767

766768
<figure>
@@ -1087,7 +1089,7 @@
10871089
It is the responsibility of **Booking Systems** to advertise the URL for
10881090
further activity in the booking workflow at the point of need. For example they
10891091
MUST advertise the URL for the `OrderItem` resource in the Orders RPDE Feed feed
1090-
by including the `id` property.
1092+
by including the `id` property within the `OrderItem`.
10911093

10921094
<div class="issue" data-number="94"></div>
10931095

EditorsDraft/index.html

+10-8
Original file line numberDiff line numberDiff line change
@@ -672,8 +672,8 @@
672672
"id": "openidconnect"
673673
}
674674
},
675-
"publishISODate": "2019-02-20T00:00:00.000Z",
676-
"generatedSubtitle": "Draft Community Group Report 20 February 2019"
675+
"publishISODate": "2019-02-21T00:00:00.000Z",
676+
"generatedSubtitle": "Draft Community Group Report 21 February 2019"
677677
}</script><meta name="description" content="This document specifies an HTTP API for placing bookings to participate in
678678
physical activities, either by attending events or through the use of leisure
679679
or sports facilities."></head>
@@ -684,7 +684,7 @@ <h1 class="title p-name" id="title">Open Booking API 1.0</h1>
684684

685685
<h2>
686686
Draft Community Group Report
687-
<time class="dt-published" datetime="2019-02-20">20 February 2019</time>
687+
<time class="dt-published" datetime="2019-02-21">21 February 2019</time>
688688
</h2>
689689
<dl>
690690

@@ -1018,7 +1018,9 @@ <h2>
10181018
<p>Cons:</p>
10191019
<ul>
10201020
<li>Including price overrides slightly increases complexity of implementation.</li>
1021-
</ul></div></section></section><section class="normative" id="order-operations"><!--OddPage--><h2 id="x8-order-operations"><span class="secno">8. </span>Order Operations<a class="self-link" aria-label="§" href="#order-operations"></a></h2><section id="amending-the-orderquote-before-b"><h3 id="x8-1-amending-the-orderquote-before-b"><span class="secno">8.1 </span>Amending the OrderQuote before <strong>B</strong><a class="self-link" aria-label="§" href="#amending-the-orderquote-before-b"></a></h3><p>The <strong>Broker</strong> <em class="rfc2119" title="MAY">MAY</em> call <strong>C1</strong> and <em class="rfc2119" title="MUST">MUST</em> call <strong>C2</strong> when the <strong>Customer</strong> updates their basket to add and remove items.</p><p>When repeated calls to <strong>C1</strong> or <strong>C2</strong> are made with the same UUID, the <strong>Booking System</strong> <em class="rfc2119" title="MUST">MUST</em> expire the leases of items that have been removed from the basket.</p><p>All leases may be cancelled by submitting an <code>OrderQuote</code> with the same UUID but without any <code>orderItem</code>s as either <strong>C1</strong> or <strong>C2</strong>. The <strong>Broker</strong> <em class="rfc2119" title="SHOULD">SHOULD</em> make a reasonable attempt to cancel all leases when it is aware that a <strong>Customer</strong> has abandoned their journey. For <strong>Booking Systems</strong> that have not implemented leasing, an <code>OrderQuote</code> without any <code>orderItem</code>s can simply be ignored.</p></section><section id="cancellation-after-b"><h3 id="x8-2-cancellation-after-b"><span class="secno">8.2 </span>Cancellation after <strong>B</strong><a class="self-link" aria-label="§" href="#cancellation-after-b"></a></h3><p>Either the whole <code>Order</code> or individual <code>OrderItem</code>s within the <code>Order</code> may be cancelled after <strong>B</strong>, however <code>OrderItem</code>s cannot be replaced or added to an existing <code>Order</code> within this version of the specification.</p><p>The cancellation may be requested by either the <strong>Customer</strong> or the <strong>Seller</strong>, and results in an updated <code>Order</code> item on the RPDE feed. Once a cancellation status is placed on an <code>OrderItem</code> within an <code>Order</code> in the RPDE feed it is assumed by the <strong>Booking System</strong> to have been processed, and it <em class="rfc2119" title="MUST NOT">MUST NOT</em> be reversed. A new <code>Order</code> will need to created to reinstate the booking.</p><section id="customer-requested-cancellation"><h4 id="x8-2-1-customer-requested-cancellation"><span class="secno">8.2.1 </span>Customer requested cancellation<a class="self-link" aria-label="§" href="#customer-requested-cancellation"></a></h4><figure id="fig-customer-requested-cancellation"><img src="customercancelled.png" alt="Customer requested cancellation" height="529" width="765">
1021+
</ul></div></section></section><section class="normative" id="order-operations"><!--OddPage--><h2 id="x8-order-operations"><span class="secno">8. </span>Order Operations<a class="self-link" aria-label="§" href="#order-operations"></a></h2><section id="amending-the-orderquote-before-b"><h3 id="x8-1-amending-the-orderquote-before-b"><span class="secno">8.1 </span>Amending the OrderQuote before <strong>B</strong><a class="self-link" aria-label="§" href="#amending-the-orderquote-before-b"></a></h3><p>The <strong>Broker</strong> <em class="rfc2119" title="MAY">MAY</em> call <strong>C1</strong> and <em class="rfc2119" title="MUST">MUST</em> call <strong>C2</strong> when the <strong>Customer</strong> updates their basket to add and remove items.</p><p>When repeated calls to <strong>C1</strong> or <strong>C2</strong> are made with the same UUID, the <strong>Booking System</strong> <em class="rfc2119" title="MUST">MUST</em> expire the leases of items that have been removed from the basket.</p><p>All leases may be cancelled by submitting an <code>OrderQuote</code> with the same UUID but without any <code>orderItem</code>s as either <strong>C1</strong> or <strong>C2</strong>. The <strong>Broker</strong> <em class="rfc2119" title="SHOULD">SHOULD</em> make a reasonable attempt to cancel all leases when it is aware that a <strong>Customer</strong> has abandoned their journey. For <strong>Booking Systems</strong> that have not implemented leasing, an <code>OrderQuote</code> without any <code>orderItem</code>s can simply be ignored.</p></section><section id="cancellation-after-b"><h3 id="x8-2-cancellation-after-b"><span class="secno">8.2 </span>Cancellation after <strong>B</strong><a class="self-link" aria-label="§" href="#cancellation-after-b"></a></h3><p>Either the whole <code>Order</code> or individual <code>OrderItem</code>s within the <code>Order</code> may be cancelled after <strong>B</strong>, however <code>OrderItem</code>s cannot be replaced or added to an existing <code>Order</code> within this version of the specification.</p><p>The cancellation may be requested by either the <strong>Customer</strong> or the <strong>Seller</strong>, and results in an updated <code>Order</code> item on the RPDE feed. Once a cancellation status is placed on an <code>OrderItem</code> within an <code>Order</code> in the RPDE feed it is assumed by the <strong>Booking System</strong> to have been processed, and it <em class="rfc2119" title="MUST NOT">MUST NOT</em> be reversed. A new <code>Order</code> will need to created to reinstate the booking.</p><div class="issue" id="issue-container-number-97"><div role="heading" class="issue-title marker" id="h-issue-0" aria-level="4"><a href="https://github.com/openactive/open-booking-api/issues/97"><span class="issue-number">Issue 97</span></a><span style="text-transform: none">: Arbitrary refunds are not in scope <a class="respec-gh-label respec-label-light" href="https://github.com/openactive/open-booking-api/issues/?q=is%3Aissue+is%3Aopen+label%3A%22Community+Feedback+Requested%22" style="background-color: rgb(150, 224, 234);">Community Feedback Requested</a></span></div><p>Refunds are only permitted for entire items, and partial item refunds (including cancellation fees) are not in scope for this version of the specification.</p>
1022+
<p>Although it is understood that some booking systems support partial item refunds, this is a superset of the functionality currently offered within the specification, so should not be an issue for refunds triggered due to cancellations via the <strong>Broker</strong>. As it stands <strong>Seller</strong> requested cancellation will be limited to whole item refunds and no cancellation fees.</p>
1023+
<p>Please comment if partial item refunds or cancellation fees are essential to your usecase.</p></div><section id="customer-requested-cancellation"><h4 id="x8-2-1-customer-requested-cancellation"><span class="secno">8.2.1 </span>Customer requested cancellation<a class="self-link" aria-label="§" href="#customer-requested-cancellation"></a></h4><figure id="fig-customer-requested-cancellation"><img src="customercancelled.png" alt="Customer requested cancellation" height="529" width="765">
10221024
<figcaption>Figure <span class="figno">9</span> <span class="fig-title">Customer requested cancellation</span></figcaption>
10231025
</figure><p>To cancel an existing OrderItem, the <strong>Broker</strong> <em class="rfc2119" title="MUST">MUST</em>:</p><ol>
10241026
<li><p>Use the latest state of the <code>Order</code> from the RPDE feed to determine which <code>OrderItem</code>s may be cancelled. If <code>allowSimpleCancellation</code> is <code>true</code>, a PATCH against the <code>OrderItem</code>
@@ -1028,7 +1030,7 @@ <h2>
10281030
</li>
10291031
<li><p>Process any refunds based on the resulting updates to the RPDE feed. Successfully cancelled <code>OrderItems</code> will have <code>orderItemStatus</code> set to <code>https://openactive.io/CustomerCancelled</code>. Note refunds <em class="rfc2119" title="MUST NOT">MUST NOT</em> be processed except in response to updates in the RPDE feed.</p>
10301032
</li>
1031-
</ol><p>To cancel an entire <code>Order</code>, a PATCH request must be made to each <code>OrderItem</code> within it individually. To minimise the number of updates in the RPDE feed, it is recommended that multiple DELETEs are sent in quick succession.</p><div class="issue" id="issue-container-number-92"><div role="heading" class="issue-title marker" id="h-issue-0" aria-level="5"><a href="https://github.com/openactive/open-booking-api/issues/92"><span class="issue-number">Issue 92</span></a><span style="text-transform: none">: Allow whole Order cancellation? <a class="respec-gh-label respec-label-light" href="https://github.com/openactive/open-booking-api/issues/?q=is%3Aissue+is%3Aopen+label%3A%22Community+Feedback+Requested%22" style="background-color: rgb(150, 224, 234);">Community Feedback Requested</a></span></div><p>Should we allow the cancellation of a whole <code>Order</code>?</p>
1033+
</ol><p>To cancel an entire <code>Order</code>, a PATCH request must be made to each <code>OrderItem</code> within it individually. To minimise the number of updates in the RPDE feed, it is recommended that multiple DELETEs are sent in quick succession.</p><div class="issue" id="issue-container-number-92"><div role="heading" class="issue-title marker" id="h-issue-1" aria-level="5"><a href="https://github.com/openactive/open-booking-api/issues/92"><span class="issue-number">Issue 92</span></a><span style="text-transform: none">: Allow whole Order cancellation? <a class="respec-gh-label respec-label-light" href="https://github.com/openactive/open-booking-api/issues/?q=is%3Aissue+is%3Aopen+label%3A%22Community+Feedback+Requested%22" style="background-color: rgb(150, 224, 234);">Community Feedback Requested</a></span></div><p>Should we allow the cancellation of a whole <code>Order</code>?</p>
10321034
<p>Pros:</p>
10331035
<ul>
10341036
<li>Easier for broker</li>
@@ -1201,7 +1203,7 @@ <h2>
12011203
<span class="hljs-string">"url"</span>: <span class="hljs-string">"https://example.com/terms-and-conditions"</span>,
12021204
}
12031205
]</pre>
1204-
</div><p>The URLs in the example are only illustrative.</p><div class="issue" id="issue-container-number-95"><div role="heading" class="issue-title marker" id="h-issue-1" aria-level="4"><a href="https://github.com/openactive/open-booking-api/issues/95"><span class="issue-number">Issue 95</span></a><span style="text-transform: none">: termsOfService is only provided at an Organization level <a class="respec-gh-label respec-label-light" href="https://github.com/openactive/open-booking-api/issues/?q=is%3Aissue+is%3Aopen+label%3A%22Community+Feedback+Requested%22" style="background-color: rgb(150, 224, 234);">Community Feedback Requested</a></span></div><p>Scope reduction: <code>termsOfService</code> may now only be specified at the <code>seller</code>, <code>broker</code> or<br>
1206+
</div><p>The URLs in the example are only illustrative.</p><div class="issue" id="issue-container-number-95"><div role="heading" class="issue-title marker" id="h-issue-2" aria-level="4"><a href="https://github.com/openactive/open-booking-api/issues/95"><span class="issue-number">Issue 95</span></a><span style="text-transform: none">: termsOfService is only provided at an Organization level <a class="respec-gh-label respec-label-light" href="https://github.com/openactive/open-booking-api/issues/?q=is%3Aissue+is%3Aopen+label%3A%22Community+Feedback+Requested%22" style="background-color: rgb(150, 224, 234);">Community Feedback Requested</a></span></div><p>Scope reduction: <code>termsOfService</code> may now only be specified at the <code>seller</code>, <code>broker</code> or<br>
12051207
<code>bookingService</code> level, and may not be provided for a specific <code>Offer</code> or <code>OrderItem</code>.</p>
12061208
<p><code>Offer</code> or <code>OrderItem</code> level <code>termsOfService</code> is reserved for future versions of the specification.</p>
12071209
<p>Please comment if this is problematic.</p></div></section></section><section class="normative" id="endpoints"><!--OddPage--><h2 id="x9-endpoints"><span class="secno">9. </span>Endpoints<a class="self-link" aria-label="§" href="#endpoints"></a></h2><p>This API has been defined around the concept of URL discovery. This
@@ -1287,7 +1289,7 @@ <h2>
12871289
for a specific action based on patterns within previously used URLs.</p><p>It is the responsibility of <strong>Booking Systems</strong> to advertise the URL for
12881290
further activity in the booking workflow at the point of need. For example they
12891291
<em class="rfc2119" title="MUST">MUST</em> advertise the URL for the <code>OrderItem</code> resource in the Orders RPDE Feed feed
1290-
by including the <code>id</code> property.</p><div class="issue" id="issue-container-number-94"><div role="heading" class="issue-title marker" id="h-issue-2" aria-level="4"><a href="https://github.com/openactive/open-booking-api/issues/94"><span class="issue-number">Issue 94</span></a><span style="text-transform: none">: URL Discovery using the Dataset Site <a class="respec-gh-label respec-label-light" href="https://github.com/openactive/open-booking-api/issues/?q=is%3Aissue+is%3Aopen+label%3A%22Community+Feedback+Requested%22" style="background-color: rgb(150, 224, 234);">Community Feedback Requested</a></span></div><p>The specification proposes to centralise URL discovery in the Dataset site, along with the feeds themselves.</p>
1292+
by including the <code>id</code> property within the <code>OrderItem</code>.</p><div class="issue" id="issue-container-number-94"><div role="heading" class="issue-title marker" id="h-issue-3" aria-level="4"><a href="https://github.com/openactive/open-booking-api/issues/94"><span class="issue-number">Issue 94</span></a><span style="text-transform: none">: URL Discovery using the Dataset Site <a class="respec-gh-label respec-label-light" href="https://github.com/openactive/open-booking-api/issues/?q=is%3Aissue+is%3Aopen+label%3A%22Community+Feedback+Requested%22" style="background-color: rgb(150, 224, 234);">Community Feedback Requested</a></span></div><p>The specification proposes to centralise URL discovery in the Dataset site, along with the feeds themselves.</p>
12911293
<p>Feedback on this approach welcome.</p></div></section></section><section class="normative" id="model"><!--OddPage--><h2 id="x10-model"><span class="secno">10. </span>Model<a class="self-link" aria-label="§" href="#model"></a></h2><section id="order-example"><h3 id="x10-1-order-example"><span class="secno">10.1 </span>Order Example<a class="self-link" aria-label="§" href="#order-example"></a></h3><div class="example" id="example-7-example-of-order-model">
12921294
<div class="marker">
12931295
<a class="self-link" href="#example-7-example-of-order-model">Example 7</a><span class="example-title">: Example of Order model</span>
@@ -2427,7 +2429,7 @@ <h2>
24272429
of the specification they support.</p><p><strong>Booking Systems</strong> <em class="rfc2119" title="MAY">MAY</em> choose to support additional media types but <em class="rfc2119" title="MUST">MUST</em> support the
24282430
media type(s) defined by this specification.</p><p>Media types will conform to the following pattern:</p><pre aria-busy="false" class="hljs">application/vnd.openactive+json; model=[m], booking=[b], rpde=[r]</pre><p>The current media type is:</p><pre aria-busy="false" class="hljs">application/vnd.openactive+json; model=2.0, booking=1.0, rpde=1.0</pre><p><strong>Brokers</strong> specifying a media type without a version, such as:</p><pre aria-busy="false" class="hljs">application/vnd.openactive+json</pre><p>will receive data in in the most current format.</p><p>If you are building an application as a <strong>Broker</strong> and care about the stability
24292431
of the response, or have a client application which is tied to a specific
2430-
version you should always try to use a media type containing the version number.</p><div class="issue" id="issue-container-number-93"><div role="heading" class="issue-title marker" id="h-issue-3" aria-level="4"><a href="https://github.com/openactive/open-booking-api/issues/93"><span class="issue-number">Issue 93</span></a><span style="text-transform: none">: Alignment media types <a class="respec-gh-label respec-label-light" href="https://github.com/openactive/open-booking-api/issues/?q=is%3Aissue+is%3Aopen+label%3A%22Community+Feedback+Requested%22" style="background-color: rgb(150, 224, 234);">Community Feedback Requested</a></span></div><p>The specification has been updated to use media types that follow this pattern:<br>
2432+
version you should always try to use a media type containing the version number.</p><div class="issue" id="issue-container-number-93"><div role="heading" class="issue-title marker" id="h-issue-4" aria-level="4"><a href="https://github.com/openactive/open-booking-api/issues/93"><span class="issue-number">Issue 93</span></a><span style="text-transform: none">: Alignment media types <a class="respec-gh-label respec-label-light" href="https://github.com/openactive/open-booking-api/issues/?q=is%3Aissue+is%3Aopen+label%3A%22Community+Feedback+Requested%22" style="background-color: rgb(150, 224, 234);">Community Feedback Requested</a></span></div><p>The specification has been updated to use media types that follow this pattern:<br>
24312433
<code>application/vnd.openactive+json; model=2.0, booking=1.0, rpde=1.0</code></p>
24322434
<p>Instead of:<br>
24332435
<code>application/vnd.openactive.1.0+json</code></p>

0 commit comments

Comments
 (0)