bookingsync-api 1.3.1 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c0ca02aff86b0d45ef1010177e91a71c547db8e338cb0f52dba3f2c7e6ae4625
4
- data.tar.gz: 0753a5fb3294b67b99b688138fd16776b523743035a85a54d586480254202828
3
+ metadata.gz: d747eda5d8e8d814f6e07ae9d820ece5807f5f462057a5c3c56cbf957142a0be
4
+ data.tar.gz: 89983586f07e2e1980d0b5e838da344c3b8a32a2b853461b89a84cd17e290991
5
5
  SHA512:
6
- metadata.gz: 3f47d2147a4c16d669d882199a9e55556d538fa9d8b906f1d311a6fdf742bbd29bc083d2ac9eec986c3ec752ee463bd43064a53e30798827c20698a0fd2164ed
7
- data.tar.gz: 774edc1cd5764a543dbb514271dbf7112222f6be4f22a7879cbacaf088d1c41713491b2c8629b2f3d2f868a88610c5b08547b43d3019bf65a8649c1c52da82f9
6
+ metadata.gz: 52ec5d1cd71a76f1d4f359fff98b654ec737da3b59a39154cecc1315618db291c5d37cf93e140b076695e9b4bba787db6142abac4a537174119c7aa938ac53d0
7
+ data.tar.gz: 963a2fdcdf80c1d7037a9e8dd1e47fc672269da4189632df92ea6543a1875787b15b9de7ac8e621403a98a42a0d967c994bc7d987b34baad475febf891c15616
data/CHANGELOG.md CHANGED
@@ -2,6 +2,11 @@
2
2
 
3
3
  # master
4
4
 
5
+ ## 1.4.0
6
+
7
+ - Add support for `reservations_offers` endpoint (Core's Reservations::Offer
8
+ V3 API), a sibling to `reservations_requests`.
9
+
5
10
  ## 1.3.1
6
11
 
7
12
  - Fix the request root key for `create_reservation_request` and
@@ -0,0 +1,78 @@
1
+ module BookingSync::API
2
+ class Client
3
+ # Client methods for the Reservations::Offer V3 endpoint
4
+ # (path: reservations/offers). This is a sibling to ReservationsRequests
5
+ # and is a different concept from SpecialOffers, which is a rental-level
6
+ # discount API (path: rentals/{rental}/special_offers). The two coexist.
7
+ #
8
+ # Contract notes (verified against live Core), differing from
9
+ # reservations_requests:
10
+ # - Request root key is `reservations_offers` (plural, array-wrapped),
11
+ # while the response root key is `offers` (asymmetric, same pattern
12
+ # as reservations_requests -> requests).
13
+ # - Offer attributes are flat, there is no `booking_payload` wrapper.
14
+ # - There is no `booking_id` on create, a booking is attached later via
15
+ # a separate Core-side AttachBooking command.
16
+ # - Money is `total_amount_cents` (integer cents), not a `final_price`
17
+ # string decimal like reservations_requests.
18
+ module ReservationsOffers
19
+ # List reservations offers
20
+ #
21
+ # Returns reservations offers for the current account.
22
+ # @param options [Hash] A customizable set of query options.
23
+ # @option options [Array] fields: List of fields to be fetched.
24
+ # @return [Array<BookingSync::API::Resource>] Array of reservations offers.
25
+ # @see http://developers.bookingsync.com/reference/endpoints/reservations_offers/#list-reservations-offers
26
+ def reservations_offers(options = {}, &block)
27
+ paginate "reservations/offers", options, &block
28
+ end
29
+
30
+ # Get a single reservations offer
31
+ #
32
+ # @param id [BookingSync::API::Resource|Integer] Reservations offer or ID
33
+ # of the reservations offer.
34
+ # @param options [Hash] A customizable set of query options.
35
+ # @option options [Array] fields: List of fields to be fetched.
36
+ # @return [BookingSync::API::Resource]
37
+ def reservations_offer(id, options = {})
38
+ get("reservations/offers/#{id}", options).pop
39
+ end
40
+
41
+ # Create a new reservations offer
42
+ #
43
+ # @param options [Hash] Reservations offer attributes.
44
+ # Required: conversation_id, rental_id, client_id, start_date,
45
+ # end_date, adults, total_amount_cents, currency, expires_at.
46
+ # Optional: children.
47
+ # @return [BookingSync::API::Resource] Newly created reservations offer.
48
+ def create_reservation_offer(options = {})
49
+ post("reservations/offers", reservations_offers: [options]).pop
50
+ end
51
+
52
+ # Edit a reservations offer
53
+ #
54
+ # A withdrawal is performed as a regular update transitioning the offer
55
+ # to the `withdrawn` status, there is no dedicated withdraw endpoint on V3.
56
+ # @param id [BookingSync::API::Resource|Integer] Reservations offer or ID of
57
+ # the reservations offer to be updated.
58
+ # @param options [Hash] Reservations offer attributes to be updated.
59
+ # @return [BookingSync::API::Resource] Updated reservations offer on success,
60
+ # exception is raised otherwise.
61
+ def patch_reservation_offer(id, options = {})
62
+ patch("reservations/offers/#{id}", reservations_offers: [options]).pop
63
+ end
64
+
65
+ # Delete a reservations offer
66
+ #
67
+ # Soft-cancels the given reservations offer (sets canceled_at). This is
68
+ # distinct from a status transition to `withdrawn`, which is done via
69
+ # {#patch_reservation_offer}.
70
+ # @param id [BookingSync::API::Resource|Integer] Reservations offer or ID of
71
+ # the reservations offer to be deleted.
72
+ # @return [NilClass] Returns nil on success.
73
+ def delete_reservation_offer(id)
74
+ delete "reservations/offers/#{id}"
75
+ end
76
+ end
77
+ end
78
+ end
@@ -40,6 +40,7 @@ require "bookingsync/api/client/rental_cancelation_policies"
40
40
  require "bookingsync/api/client/rental_cancelation_policy_items"
41
41
  require "bookingsync/api/client/rentals_contents_overrides"
42
42
  require "bookingsync/api/client/rental_urls"
43
+ require "bookingsync/api/client/reservations_offers"
43
44
  require "bookingsync/api/client/reservations_requests"
44
45
  require "bookingsync/api/client/review_replies"
45
46
  require "bookingsync/api/client/reviews"
@@ -105,6 +106,7 @@ module BookingSync::API
105
106
  include BookingSync::API::Client::RentalCancelationPolicyItems
106
107
  include BookingSync::API::Client::RentalsContentsOverrides
107
108
  include BookingSync::API::Client::RentalUrls
109
+ include BookingSync::API::Client::ReservationsOffers
108
110
  include BookingSync::API::Client::ReservationsRequests
109
111
  include BookingSync::API::Client::ReviewReplies
110
112
  include BookingSync::API::Client::Reviews
@@ -1,5 +1,5 @@
1
1
  module BookingSync
2
2
  module API
3
- VERSION = "1.3.1"
3
+ VERSION = "1.4.0"
4
4
  end
5
5
  end
@@ -0,0 +1,104 @@
1
+ require "spec_helper"
2
+
3
+ describe BookingSync::API::Client::ReservationsOffers do
4
+ let(:client) { BookingSync::API::Client.new(test_access_token) }
5
+
6
+ before { |ex| @casette_base_path = casette_path(casette_dir, ex.metadata) }
7
+
8
+ # Contract differs from reservations_requests (verified against live Core):
9
+ # - fields are flat, there is no `booking_payload` wrapper
10
+ # - there is no `booking_id` on create (attached later, Core-side)
11
+ # - money is `total_amount_cents` (integer), not a `final_price` string
12
+ let(:attributes) do
13
+ {
14
+ conversation_id: 1,
15
+ rental_id: 1,
16
+ client_id: 1,
17
+ start_date: "2026-10-01",
18
+ end_date: "2026-10-08",
19
+ adults: 2,
20
+ children: 1,
21
+ total_amount_cents: 55000,
22
+ currency: "EUR",
23
+ expires_at: "2026-09-01T12:00:00Z"
24
+ }
25
+ end
26
+
27
+ describe ".reservations_offers", :vcr do
28
+ it "returns reservations offers" do
29
+ expect(client.reservations_offers).not_to be_empty
30
+ assert_requested :get, bs_url("reservations/offers")
31
+ end
32
+
33
+ describe "pagination" do
34
+ context "with auto_paginate: true" do
35
+ it "returns all reservations offers joined from many requests" do
36
+ paginated = client.reservations_offers(per_page: 2, auto_paginate: true)
37
+ all_in_one_page = client.reservations_offers(per_page: 100)
38
+ expect(paginated.map(&:id)).to match_array(all_in_one_page.map(&:id))
39
+ expect(paginated.size).to be >= 3
40
+ end
41
+ end
42
+ end
43
+ end
44
+
45
+ describe ".reservations_offer", :vcr do
46
+ let(:prefetched_reservations_offer_id) {
47
+ find_resource("#{@casette_base_path}_reservations_offers/returns_reservations_offers.yml", "offers")[:id]
48
+ }
49
+
50
+ it "returns a single reservations offer" do
51
+ reservations_offer = client.reservations_offer(prefetched_reservations_offer_id)
52
+ expect(reservations_offer.id).to eq prefetched_reservations_offer_id
53
+ end
54
+ end
55
+
56
+ describe ".create_reservation_offer", :vcr do
57
+ it "creates a new reservations offer" do
58
+ client.create_reservation_offer(attributes)
59
+ assert_requested :post, bs_url("reservations/offers"),
60
+ body: { reservations_offers: [attributes] }.to_json
61
+ end
62
+
63
+ it "returns newly created reservations offer" do
64
+ VCR.use_cassette("BookingSync_API_Client_ReservationsOffers/_create_reservation_offer/creates_a_new_reservations_offer") do
65
+ reservations_offer = client.create_reservation_offer(attributes)
66
+ expect(reservations_offer.links.rental).to eq(1)
67
+ expect(reservations_offer.currency).to eq("EUR")
68
+ expect(reservations_offer.total_amount_cents).to eq(55000)
69
+ expect(reservations_offer.status).to eq("pending")
70
+ end
71
+ end
72
+ end
73
+
74
+ describe ".patch_reservation_offer", :vcr do
75
+ let(:created_reservations_offer_id) {
76
+ find_resource("#{@casette_base_path}_create_reservation_offer/creates_a_new_reservations_offer.yml", "offers")[:id]
77
+ }
78
+
79
+ it "updates given reservations offer by ID" do
80
+ client.patch_reservation_offer(created_reservations_offer_id, total_amount_cents: 60000)
81
+ assert_requested :patch, bs_url("reservations/offers/#{created_reservations_offer_id}"),
82
+ body: { reservations_offers: [{ total_amount_cents: 60000 }] }.to_json
83
+ end
84
+
85
+ it "returns updated reservations offer" do
86
+ VCR.use_cassette("BookingSync_API_Client_ReservationsOffers/_patch_reservation_offer/updates_given_reservations_offer_by_ID") do
87
+ reservations_offer = client.patch_reservation_offer(created_reservations_offer_id, total_amount_cents: 60000)
88
+ expect(reservations_offer).to be_kind_of(BookingSync::API::Resource)
89
+ expect(reservations_offer.total_amount_cents).to eq(60000)
90
+ end
91
+ end
92
+ end
93
+
94
+ describe ".delete_reservation_offer", :vcr do
95
+ let(:created_reservations_offer_id) {
96
+ find_resource("#{@casette_base_path}_create_reservation_offer/creates_a_new_reservations_offer.yml", "offers")[:id]
97
+ }
98
+
99
+ it "soft-cancels given reservations offer" do
100
+ expect(client.delete_reservation_offer(created_reservations_offer_id)).to be_nil
101
+ assert_requested :delete, bs_url("reservations/offers/#{created_reservations_offer_id}")
102
+ end
103
+ end
104
+ end
@@ -0,0 +1,83 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://www.bookingsync.com/api/v3/reservations/offers
6
+ body:
7
+ encoding: UTF-8
8
+ string: '{"reservations_offers":[{"conversation_id":1,"rental_id":1,"client_id":1,"start_date":"2026-10-01","end_date":"2026-10-08","adults":2,"children":1,"total_amount_cents":55000,"currency":"EUR","expires_at":"2026-09-01T12:00:00Z"}]}'
9
+ headers:
10
+ User-Agent:
11
+ - BookingSync API gem v1.3.1
12
+ Accept:
13
+ - application/vnd.api+json
14
+ Content-Type:
15
+ - application/vnd.api+json
16
+ Authorization:
17
+ - Bearer <<ACCESS_TOKEN>>
18
+ Accept-Encoding:
19
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
20
+ Connection:
21
+ - keep-alive
22
+ Keep-Alive:
23
+ - '30'
24
+ response:
25
+ status:
26
+ code: 201
27
+ message: Created
28
+ headers:
29
+ X-Frame-Options:
30
+ - SAMEORIGIN
31
+ X-Xss-Protection:
32
+ - '0'
33
+ X-Content-Type-Options:
34
+ - nosniff
35
+ X-Permitted-Cross-Domain-Policies:
36
+ - none
37
+ Referrer-Policy:
38
+ - strict-origin-when-cross-origin
39
+ X-Updated-Since-Request-Synced-At:
40
+ - 2026-08-13 09:44:42 UTC
41
+ X-Ratelimit-Limit:
42
+ - '1000000'
43
+ X-Ratelimit-Reset:
44
+ - '1786615200'
45
+ X-Ratelimit-Remaining:
46
+ - '999975'
47
+ Content-Type:
48
+ - application/vnd.api+json; charset=utf-8
49
+ Location:
50
+ - https://www.bookingsync.com/api/v3/reservations/offers/7
51
+ Etag:
52
+ - W/"0f081aa6edf9b411a91cf8c4d1dfa20e"
53
+ Cache-Control:
54
+ - must-revalidate, private, max-age=0
55
+ X-Request-Id:
56
+ - 28049d28-9a86-4908-ae58-6f3ef7b010db
57
+ X-Runtime:
58
+ - '0.144137'
59
+ Server-Timing:
60
+ - start_processing.action_controller;dur=0.04, sql.active_record;dur=80.15,
61
+ instantiation.active_record;dur=2.04, cache_increment.active_support;dur=0.45,
62
+ start_transaction.active_record;dur=0.01, transaction.active_record;dur=138.36,
63
+ attributes.base_serializer;dur=0.23, associations.base_serializer;dur=0.10,
64
+ _links_templates.base_serializer;dur=0.49, _links.base_serializer;dur=0.15,
65
+ serializable_object.base_serializer;dur=1.15, prometheus.respond.Bookingsync::Prometheus::V3BookingResponder;dur=2.76,
66
+ publishing_with_prometheus;dur=44.13, prometheus.respond.Bookingsync::Prometheus::V3InboxResponder;dur=2.49,
67
+ has_errors?.api_responder;dur=0.06, render.base_controller;dur=0.93, default_render.api_responder;dur=0.45,
68
+ display.api_responder;dur=0.56, api_behavior.api_responder;dur=0.60, process_action.action_controller;dur=136.84
69
+ Vary:
70
+ - Origin
71
+ X-Miniprofiler-Original-Cache-Control:
72
+ - max-age=0, private, must-revalidate
73
+ X-Miniprofiler-Ids:
74
+ - vj7tn2e0iwgmustd17z8,18hsstf7dalhz1hf4a7d,ra82uxje18ygexj4ebq7,ucv0vs4vz1ai6ytk030,ycdu6o3yi0jc7rfaqxei,wbeca207fohukg0y7doh,a4li770cewkr5mdzcntt,w79m5h3hjpl2gu7vmyr2,su93n1eqsd9p8jw1gjt7,mghevmsym2u5r5hjcg4l,cnueo2x7jxovu7yxrzu1,583icg9w65zmv9p0owlv,xjifh57wefx9sadw8dsk,9r1cbvaxy660so0rosec,ii0cu8whbp05k4seu0g9,51upjlzc2fiiomb3px3a,rb4n8ibdesq5vpgi5qls,pqzqqi27j140pnsmzjnx,ti8eyk58ij432etthju4,ve10ya82r6clzqh9i3if
75
+ Set-Cookie:
76
+ - __profilin=p%3Dt; path=/; httponly; samesite=lax
77
+ Content-Length:
78
+ - '833'
79
+ body:
80
+ encoding: UTF-8
81
+ string: '{"links":{"offers.account":"https://www.bookingsync.com/api/v3/accounts/{offers.account}","offers.application":"https://www.bookingsync.com/api/v3/applications/{offers.application}","offers.booking":"https://www.bookingsync.com/api/v3/bookings/{offers.booking}","offers.client":"https://www.bookingsync.com/api/v3/clients/{offers.client}","offers.rental":"https://www.bookingsync.com/api/v3/rentals/{offers.rental}"},"offers":[{"links":{"account":1,"application":1,"booking":null,"client":1,"rental":1},"adults":2,"canceled_at":null,"children":1,"created_at":"2026-08-13T09:44:42Z","created_by_id":1,"created_by_type":"Doorkeeper::Application","currency":"EUR","end_date":"2026-10-08","expires_at":"2026-09-01T12:00:00Z","id":7,"start_date":"2026-10-01","status":"pending","total_amount_cents":55000,"updated_at":"2026-08-13T09:44:42Z"}],"meta":{}}'
82
+ recorded_at: Thu, 13 Aug 2026 09:44:42 GMT
83
+ recorded_with: VCR 6.4.0
@@ -0,0 +1,75 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: delete
5
+ uri: https://www.bookingsync.com/api/v3/reservations/offers/7
6
+ body:
7
+ encoding: UTF-8
8
+ string: "{}"
9
+ headers:
10
+ User-Agent:
11
+ - BookingSync API gem v1.3.1
12
+ Accept:
13
+ - application/vnd.api+json
14
+ Content-Type:
15
+ - application/vnd.api+json
16
+ Authorization:
17
+ - Bearer <<ACCESS_TOKEN>>
18
+ Accept-Encoding:
19
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
20
+ Connection:
21
+ - keep-alive
22
+ Keep-Alive:
23
+ - '30'
24
+ response:
25
+ status:
26
+ code: 204
27
+ message: No Content
28
+ headers:
29
+ X-Frame-Options:
30
+ - SAMEORIGIN
31
+ X-Xss-Protection:
32
+ - '0'
33
+ X-Content-Type-Options:
34
+ - nosniff
35
+ X-Permitted-Cross-Domain-Policies:
36
+ - none
37
+ Referrer-Policy:
38
+ - strict-origin-when-cross-origin
39
+ X-Updated-Since-Request-Synced-At:
40
+ - 2026-08-13 09:44:43 UTC
41
+ X-Ratelimit-Limit:
42
+ - '1000000'
43
+ X-Ratelimit-Reset:
44
+ - '1786615200'
45
+ X-Ratelimit-Remaining:
46
+ - '999973'
47
+ Cache-Control:
48
+ - must-revalidate, private, max-age=0
49
+ X-Request-Id:
50
+ - 4b862da5-b81b-4df9-a29e-7289292bf33b
51
+ X-Runtime:
52
+ - '0.077552'
53
+ Server-Timing:
54
+ - start_processing.action_controller;dur=0.03, sql.active_record;dur=44.82,
55
+ instantiation.active_record;dur=0.66, cache_increment.active_support;dur=1.30,
56
+ start_transaction.active_record;dur=0.01, transaction.active_record;dur=52.09,
57
+ attributes.base_serializer;dur=0.08, associations.base_serializer;dur=0.03,
58
+ _links_templates.base_serializer;dur=0.14, _links.base_serializer;dur=0.05,
59
+ serializable_object.base_serializer;dur=0.37, prometheus.respond.Bookingsync::Prometheus::V3BookingResponder;dur=3.39,
60
+ publishing_with_prometheus;dur=24.50, has_errors?.api_responder;dur=0.09,
61
+ render.base_controller;dur=0.51, default_render.api_responder;dur=0.59, api_behavior.api_responder;dur=0.07,
62
+ process_action.action_controller;dur=75.02
63
+ Vary:
64
+ - Origin
65
+ X-Miniprofiler-Original-Cache-Control:
66
+ - no-cache
67
+ X-Miniprofiler-Ids:
68
+ - akb3m70t5njp1w3i4mi3,3qqyvc8bqh0dusg2yirg,vj7tn2e0iwgmustd17z8,18hsstf7dalhz1hf4a7d,ra82uxje18ygexj4ebq7,ucv0vs4vz1ai6ytk030,ycdu6o3yi0jc7rfaqxei,wbeca207fohukg0y7doh,a4li770cewkr5mdzcntt,w79m5h3hjpl2gu7vmyr2,su93n1eqsd9p8jw1gjt7,mghevmsym2u5r5hjcg4l,cnueo2x7jxovu7yxrzu1,583icg9w65zmv9p0owlv,xjifh57wefx9sadw8dsk,9r1cbvaxy660so0rosec,ii0cu8whbp05k4seu0g9,51upjlzc2fiiomb3px3a,rb4n8ibdesq5vpgi5qls,pqzqqi27j140pnsmzjnx
69
+ Set-Cookie:
70
+ - __profilin=p%3Dt; path=/; httponly; samesite=lax
71
+ body:
72
+ encoding: UTF-8
73
+ string: ''
74
+ recorded_at: Thu, 13 Aug 2026 09:44:43 GMT
75
+ recorded_with: VCR 6.4.0
@@ -0,0 +1,81 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: patch
5
+ uri: https://www.bookingsync.com/api/v3/reservations/offers/7
6
+ body:
7
+ encoding: UTF-8
8
+ string: '{"reservations_offers":[{"total_amount_cents":60000}]}'
9
+ headers:
10
+ User-Agent:
11
+ - BookingSync API gem v1.3.1
12
+ Accept:
13
+ - application/vnd.api+json
14
+ Content-Type:
15
+ - application/vnd.api+json
16
+ Authorization:
17
+ - Bearer <<ACCESS_TOKEN>>
18
+ Accept-Encoding:
19
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
20
+ Connection:
21
+ - keep-alive
22
+ Keep-Alive:
23
+ - '30'
24
+ response:
25
+ status:
26
+ code: 200
27
+ message: OK
28
+ headers:
29
+ X-Frame-Options:
30
+ - SAMEORIGIN
31
+ X-Xss-Protection:
32
+ - '0'
33
+ X-Content-Type-Options:
34
+ - nosniff
35
+ X-Permitted-Cross-Domain-Policies:
36
+ - none
37
+ Referrer-Policy:
38
+ - strict-origin-when-cross-origin
39
+ X-Updated-Since-Request-Synced-At:
40
+ - 2026-08-13 09:44:42 UTC
41
+ X-Ratelimit-Limit:
42
+ - '1000000'
43
+ X-Ratelimit-Reset:
44
+ - '1786615200'
45
+ X-Ratelimit-Remaining:
46
+ - '999974'
47
+ Content-Type:
48
+ - application/vnd.api+json; charset=utf-8
49
+ Etag:
50
+ - W/"3ad9ab0512c0be7cc995c200756b5e35"
51
+ Cache-Control:
52
+ - must-revalidate, private, max-age=0
53
+ X-Request-Id:
54
+ - a7c4d4bc-cbe0-4305-adfa-61f68cc8d1a5
55
+ X-Runtime:
56
+ - '0.147922'
57
+ Server-Timing:
58
+ - start_processing.action_controller;dur=0.03, sql.active_record;dur=83.15,
59
+ instantiation.active_record;dur=1.33, cache_increment.active_support;dur=0.87,
60
+ start_transaction.active_record;dur=0.01, transaction.active_record;dur=136.76,
61
+ attributes.base_serializer;dur=0.24, associations.base_serializer;dur=0.12,
62
+ _links_templates.base_serializer;dur=0.92, _links.base_serializer;dur=0.18,
63
+ serializable_object.base_serializer;dur=1.99, prometheus.respond.Bookingsync::Prometheus::V3BookingResponder;dur=2.85,
64
+ publishing_with_prometheus;dur=48.49, prometheus.respond.Bookingsync::Prometheus::V3InboxResponder;dur=2.87,
65
+ has_errors?.api_responder;dur=0.09, render.base_controller;dur=1.50, default_render.api_responder;dur=0.92,
66
+ display.api_responder;dur=0.69, api_behavior.api_responder;dur=0.75, process_action.action_controller;dur=144.75
67
+ Vary:
68
+ - Origin
69
+ X-Miniprofiler-Original-Cache-Control:
70
+ - max-age=0, private, must-revalidate
71
+ X-Miniprofiler-Ids:
72
+ - 3qqyvc8bqh0dusg2yirg,vj7tn2e0iwgmustd17z8,18hsstf7dalhz1hf4a7d,ra82uxje18ygexj4ebq7,ucv0vs4vz1ai6ytk030,ycdu6o3yi0jc7rfaqxei,wbeca207fohukg0y7doh,a4li770cewkr5mdzcntt,w79m5h3hjpl2gu7vmyr2,su93n1eqsd9p8jw1gjt7,mghevmsym2u5r5hjcg4l,cnueo2x7jxovu7yxrzu1,583icg9w65zmv9p0owlv,xjifh57wefx9sadw8dsk,9r1cbvaxy660so0rosec,ii0cu8whbp05k4seu0g9,51upjlzc2fiiomb3px3a,rb4n8ibdesq5vpgi5qls,pqzqqi27j140pnsmzjnx,ti8eyk58ij432etthju4
73
+ Set-Cookie:
74
+ - __profilin=p%3Dt; path=/; httponly; samesite=lax
75
+ Content-Length:
76
+ - '833'
77
+ body:
78
+ encoding: UTF-8
79
+ string: '{"links":{"offers.account":"https://www.bookingsync.com/api/v3/accounts/{offers.account}","offers.application":"https://www.bookingsync.com/api/v3/applications/{offers.application}","offers.booking":"https://www.bookingsync.com/api/v3/bookings/{offers.booking}","offers.client":"https://www.bookingsync.com/api/v3/clients/{offers.client}","offers.rental":"https://www.bookingsync.com/api/v3/rentals/{offers.rental}"},"offers":[{"links":{"account":1,"application":1,"booking":null,"client":1,"rental":1},"adults":2,"canceled_at":null,"children":1,"created_at":"2026-08-13T09:44:42Z","created_by_id":1,"created_by_type":"Doorkeeper::Application","currency":"EUR","end_date":"2026-10-08","expires_at":"2026-09-01T12:00:00Z","id":7,"start_date":"2026-10-01","status":"pending","total_amount_cents":60000,"updated_at":"2026-08-13T09:44:42Z"}],"meta":{}}'
80
+ recorded_at: Thu, 13 Aug 2026 09:44:42 GMT
81
+ recorded_with: VCR 6.4.0
@@ -0,0 +1,91 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://www.bookingsync.com/api/v3/reservations/offers/1
6
+ body:
7
+ encoding: UTF-8
8
+ string: "{}"
9
+ headers:
10
+ User-Agent:
11
+ - BookingSync API gem v1.3.1
12
+ Accept:
13
+ - application/vnd.api+json
14
+ Content-Type:
15
+ - application/vnd.api+json
16
+ Authorization:
17
+ - Bearer <<ACCESS_TOKEN>>
18
+ Accept-Encoding:
19
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
20
+ Connection:
21
+ - keep-alive
22
+ Keep-Alive:
23
+ - '30'
24
+ response:
25
+ status:
26
+ code: 200
27
+ message: OK
28
+ headers:
29
+ X-Frame-Options:
30
+ - SAMEORIGIN
31
+ X-Xss-Protection:
32
+ - '0'
33
+ X-Content-Type-Options:
34
+ - nosniff
35
+ X-Permitted-Cross-Domain-Policies:
36
+ - none
37
+ Referrer-Policy:
38
+ - strict-origin-when-cross-origin
39
+ X-Updated-Since-Request-Synced-At:
40
+ - 2026-08-13 09:44:42 UTC
41
+ X-Ratelimit-Limit:
42
+ - '1000000'
43
+ X-Ratelimit-Reset:
44
+ - '1786615200'
45
+ X-Ratelimit-Remaining:
46
+ - '999976'
47
+ Content-Type:
48
+ - application/vnd.api+json; charset=utf-8
49
+ Link:
50
+ - <https://www.bookingsync.com/api/v3/reservations/offers/1?page=1>; rel="first",
51
+ <https://www.bookingsync.com/api/v3/reservations/offers/1?page=1>; rel="last"
52
+ X-Total-Pages:
53
+ - '1'
54
+ X-Total-Count:
55
+ - '1'
56
+ X-Per-Page:
57
+ - '100'
58
+ X-Current-Page:
59
+ - '1'
60
+ Etag:
61
+ - W/"b3defe4f924af6ef0183d667749907a1"
62
+ Cache-Control:
63
+ - must-revalidate, private, max-age=0
64
+ X-Request-Id:
65
+ - 2809e70a-4322-4b7a-b56c-5f900fcd083c
66
+ X-Runtime:
67
+ - '0.025915'
68
+ Server-Timing:
69
+ - start_processing.action_controller;dur=0.02, sql.active_record;dur=13.95,
70
+ instantiation.active_record;dur=0.76, cache_increment.active_support;dur=0.48,
71
+ Api::V3::UpdatedSinceSearch.results;dur=0.22, Api::V3::Concerns::SmartEagerLoadable/with_dynamic_includes;dur=0.14,
72
+ Api::V3::UpdatedSinceSearch.meta;dur=0.03, render.base_controller;dur=3.22,
73
+ default_render.api_responder;dur=0.47, attributes.base_serializer;dur=0.09,
74
+ associations.base_serializer;dur=0.03, _links_templates.base_serializer;dur=0.14,
75
+ _links.base_serializer;dur=0.05, serializable_object.base_serializer;dur=0.37,
76
+ display.api_responder;dur=2.83, api_behavior.api_responder;dur=2.86, process_action.action_controller;dur=23.61
77
+ Vary:
78
+ - Origin
79
+ X-Miniprofiler-Original-Cache-Control:
80
+ - max-age=0, private, must-revalidate
81
+ X-Miniprofiler-Ids:
82
+ - 18hsstf7dalhz1hf4a7d,ra82uxje18ygexj4ebq7,ucv0vs4vz1ai6ytk030,ycdu6o3yi0jc7rfaqxei,wbeca207fohukg0y7doh,a4li770cewkr5mdzcntt,w79m5h3hjpl2gu7vmyr2,su93n1eqsd9p8jw1gjt7,mghevmsym2u5r5hjcg4l,cnueo2x7jxovu7yxrzu1,583icg9w65zmv9p0owlv,xjifh57wefx9sadw8dsk,9r1cbvaxy660so0rosec,ii0cu8whbp05k4seu0g9,51upjlzc2fiiomb3px3a,rb4n8ibdesq5vpgi5qls,pqzqqi27j140pnsmzjnx,ti8eyk58ij432etthju4,ve10ya82r6clzqh9i3if,qh5surbc19l3vghlvjfl
83
+ Set-Cookie:
84
+ - __profilin=p%3Dt; path=/; httponly; samesite=lax
85
+ Content-Length:
86
+ - '1035'
87
+ body:
88
+ encoding: UTF-8
89
+ string: '{"links":{"offers.account":"https://www.bookingsync.com/api/v3/accounts/{offers.account}","offers.application":"https://www.bookingsync.com/api/v3/applications/{offers.application}","offers.booking":"https://www.bookingsync.com/api/v3/bookings/{offers.booking}","offers.client":"https://www.bookingsync.com/api/v3/clients/{offers.client}","offers.rental":"https://www.bookingsync.com/api/v3/rentals/{offers.rental}"},"offers":[{"links":{"account":1,"application":1,"booking":null,"client":1,"rental":1},"adults":2,"canceled_at":null,"children":0,"created_at":"2026-08-13T09:19:56Z","created_by_id":1,"created_by_type":"Doorkeeper::Application","currency":"EUR","end_date":"2026-10-08","expires_at":"2026-09-01T12:00:00Z","id":1,"start_date":"2026-10-01","status":"pending","total_amount_cents":99000,"updated_at":"2026-08-13T09:20:10Z"}],"meta":{"Link":{"first":"https://www.bookingsync.com/api/v3/reservations/offers/1?page=1","last":"https://www.bookingsync.com/api/v3/reservations/offers/1?page=1"},"X-Total-Pages":"1","X-Total-Count":"1","X-Per-Page":"100"}}'
90
+ recorded_at: Thu, 13 Aug 2026 09:44:42 GMT
91
+ recorded_with: VCR 6.4.0
@@ -0,0 +1,359 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://www.bookingsync.com/api/v3/reservations/offers?per_page=2
6
+ body:
7
+ encoding: UTF-8
8
+ string: "{}"
9
+ headers:
10
+ User-Agent:
11
+ - BookingSync API gem v1.3.1
12
+ Accept:
13
+ - application/vnd.api+json
14
+ Content-Type:
15
+ - application/vnd.api+json
16
+ Authorization:
17
+ - Bearer <<ACCESS_TOKEN>>
18
+ Accept-Encoding:
19
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
20
+ Connection:
21
+ - keep-alive
22
+ Keep-Alive:
23
+ - '30'
24
+ response:
25
+ status:
26
+ code: 200
27
+ message: OK
28
+ headers:
29
+ X-Frame-Options:
30
+ - SAMEORIGIN
31
+ X-Xss-Protection:
32
+ - '0'
33
+ X-Content-Type-Options:
34
+ - nosniff
35
+ X-Permitted-Cross-Domain-Policies:
36
+ - none
37
+ Referrer-Policy:
38
+ - strict-origin-when-cross-origin
39
+ X-Updated-Since-Request-Synced-At:
40
+ - 2026-08-13 09:44:42 UTC
41
+ X-Ratelimit-Limit:
42
+ - '1000000'
43
+ X-Ratelimit-Reset:
44
+ - '1786615200'
45
+ X-Ratelimit-Remaining:
46
+ - '999980'
47
+ Content-Type:
48
+ - application/vnd.api+json; charset=utf-8
49
+ Link:
50
+ - <https://www.bookingsync.com/api/v3/reservations/offers?page=1&per_page=2>; rel="first",
51
+ <https://www.bookingsync.com/api/v3/reservations/offers?page=2&per_page=2>; rel="next",
52
+ <https://www.bookingsync.com/api/v3/reservations/offers?page=3&per_page=2>; rel="last"
53
+ X-Total-Pages:
54
+ - '3'
55
+ X-Total-Count:
56
+ - '5'
57
+ X-Per-Page:
58
+ - '2'
59
+ X-Current-Page:
60
+ - '1'
61
+ Etag:
62
+ - W/"5401a3f2ddc331db6a47561f70729e04"
63
+ Cache-Control:
64
+ - must-revalidate, private, max-age=0
65
+ X-Request-Id:
66
+ - 7b74a4ce-0220-4bf8-8f67-b00ffd70e901
67
+ X-Runtime:
68
+ - '0.024437'
69
+ Server-Timing:
70
+ - start_processing.action_controller;dur=0.03, sql.active_record;dur=13.32,
71
+ instantiation.active_record;dur=0.62, cache_increment.active_support;dur=0.53,
72
+ Api::V3::UpdatedSinceSearch.results;dur=0.20, Api::V3::Concerns::SmartEagerLoadable/with_dynamic_includes;dur=0.14,
73
+ Api::V3::UpdatedSinceSearch.meta;dur=0.03, render.base_controller;dur=3.59,
74
+ default_render.api_responder;dur=0.47, attributes.base_serializer;dur=0.12,
75
+ associations.base_serializer;dur=0.06, _links_templates.base_serializer;dur=0.25,
76
+ _links.base_serializer;dur=0.09, serializable_object.base_serializer;dur=0.61,
77
+ display.api_responder;dur=3.20, api_behavior.api_responder;dur=3.23, process_action.action_controller;dur=22.10
78
+ Vary:
79
+ - Origin
80
+ X-Miniprofiler-Original-Cache-Control:
81
+ - max-age=0, private, must-revalidate
82
+ X-Miniprofiler-Ids:
83
+ - jyjbr4olpubqtpeukfsu,wbeca207fohukg0y7doh,a4li770cewkr5mdzcntt,w79m5h3hjpl2gu7vmyr2,su93n1eqsd9p8jw1gjt7,mghevmsym2u5r5hjcg4l,cnueo2x7jxovu7yxrzu1,583icg9w65zmv9p0owlv,xjifh57wefx9sadw8dsk,9r1cbvaxy660so0rosec,ii0cu8whbp05k4seu0g9,51upjlzc2fiiomb3px3a,rb4n8ibdesq5vpgi5qls,pqzqqi27j140pnsmzjnx,ti8eyk58ij432etthju4,ve10ya82r6clzqh9i3if,qh5surbc19l3vghlvjfl,y435k5tyc3cvshigb0yv,avck3om580t5k1yd3zvj,xwlr6ev2k75c69se228v
84
+ Set-Cookie:
85
+ - __profilin=p%3Dt; path=/; httponly; samesite=lax
86
+ Content-Length:
87
+ - '1552'
88
+ body:
89
+ encoding: UTF-8
90
+ string: '{"links":{"offers.account":"https://www.bookingsync.com/api/v3/accounts/{offers.account}","offers.application":"https://www.bookingsync.com/api/v3/applications/{offers.application}","offers.booking":"https://www.bookingsync.com/api/v3/bookings/{offers.booking}","offers.client":"https://www.bookingsync.com/api/v3/clients/{offers.client}","offers.rental":"https://www.bookingsync.com/api/v3/rentals/{offers.rental}"},"offers":[{"links":{"account":1,"application":1,"booking":null,"client":1,"rental":1},"adults":2,"canceled_at":null,"children":0,"created_at":"2026-08-13T09:19:56Z","created_by_id":1,"created_by_type":"Doorkeeper::Application","currency":"EUR","end_date":"2026-10-08","expires_at":"2026-09-01T12:00:00Z","id":1,"start_date":"2026-10-01","status":"pending","total_amount_cents":99000,"updated_at":"2026-08-13T09:20:10Z"},{"links":{"account":1,"application":1,"booking":null,"client":1,"rental":1},"adults":2,"canceled_at":null,"children":1,"created_at":"2026-08-13T09:34:10Z","created_by_id":1,"created_by_type":"Doorkeeper::Application","currency":"EUR","end_date":"2026-10-08","expires_at":"2026-09-01T12:00:00Z","id":2,"start_date":"2026-10-01","status":"pending","total_amount_cents":55000,"updated_at":"2026-08-13T09:34:10Z"}],"meta":{"Link":{"first":"https://www.bookingsync.com/api/v3/reservations/offers?page=1\u0026per_page=2","next":"https://www.bookingsync.com/api/v3/reservations/offers?page=2\u0026per_page=2","last":"https://www.bookingsync.com/api/v3/reservations/offers?page=3\u0026per_page=2"},"X-Total-Pages":"3","X-Total-Count":"5","X-Per-Page":"2"}}'
91
+ recorded_at: Thu, 13 Aug 2026 09:44:42 GMT
92
+ - request:
93
+ method: get
94
+ uri: https://www.bookingsync.com/api/v3/reservations/offers?page=2&per_page=2
95
+ body:
96
+ encoding: UTF-8
97
+ string: "{}"
98
+ headers:
99
+ User-Agent:
100
+ - BookingSync API gem v1.3.1
101
+ Accept:
102
+ - application/vnd.api+json
103
+ Content-Type:
104
+ - application/vnd.api+json
105
+ Authorization:
106
+ - Bearer <<ACCESS_TOKEN>>
107
+ Accept-Encoding:
108
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
109
+ Connection:
110
+ - keep-alive
111
+ Keep-Alive:
112
+ - '30'
113
+ response:
114
+ status:
115
+ code: 200
116
+ message: OK
117
+ headers:
118
+ X-Frame-Options:
119
+ - SAMEORIGIN
120
+ X-Xss-Protection:
121
+ - '0'
122
+ X-Content-Type-Options:
123
+ - nosniff
124
+ X-Permitted-Cross-Domain-Policies:
125
+ - none
126
+ Referrer-Policy:
127
+ - strict-origin-when-cross-origin
128
+ X-Updated-Since-Request-Synced-At:
129
+ - 2026-08-13 09:44:42 UTC
130
+ X-Ratelimit-Limit:
131
+ - '1000000'
132
+ X-Ratelimit-Reset:
133
+ - '1786615200'
134
+ X-Ratelimit-Remaining:
135
+ - '999979'
136
+ Content-Type:
137
+ - application/vnd.api+json; charset=utf-8
138
+ Link:
139
+ - <https://www.bookingsync.com/api/v3/reservations/offers?page=1&per_page=2>; rel="first",
140
+ <https://www.bookingsync.com/api/v3/reservations/offers?page=1&per_page=2>; rel="prev",
141
+ <https://www.bookingsync.com/api/v3/reservations/offers?page=3&per_page=2>; rel="next",
142
+ <https://www.bookingsync.com/api/v3/reservations/offers?page=3&per_page=2>; rel="last"
143
+ X-Total-Pages:
144
+ - '3'
145
+ X-Total-Count:
146
+ - '5'
147
+ X-Per-Page:
148
+ - '2'
149
+ X-Current-Page:
150
+ - '2'
151
+ Etag:
152
+ - W/"6a2ec3952657f325a1058df933c7020f"
153
+ Cache-Control:
154
+ - must-revalidate, private, max-age=0
155
+ X-Request-Id:
156
+ - 8a358a19-28ba-4c0d-8d1e-588c76f32d10
157
+ X-Runtime:
158
+ - '0.023756'
159
+ Server-Timing:
160
+ - start_processing.action_controller;dur=0.02, sql.active_record;dur=12.51,
161
+ instantiation.active_record;dur=0.69, cache_increment.active_support;dur=0.51,
162
+ Api::V3::UpdatedSinceSearch.results;dur=0.21, Api::V3::Concerns::SmartEagerLoadable/with_dynamic_includes;dur=0.13,
163
+ Api::V3::UpdatedSinceSearch.meta;dur=0.02, render.base_controller;dur=2.93,
164
+ default_render.api_responder;dur=0.48, attributes.base_serializer;dur=0.13,
165
+ associations.base_serializer;dur=0.06, _links_templates.base_serializer;dur=0.24,
166
+ _links.base_serializer;dur=0.08, serializable_object.base_serializer;dur=0.61,
167
+ display.api_responder;dur=2.51, api_behavior.api_responder;dur=2.54, process_action.action_controller;dur=21.49
168
+ Vary:
169
+ - Origin
170
+ X-Miniprofiler-Original-Cache-Control:
171
+ - max-age=0, private, must-revalidate
172
+ X-Miniprofiler-Ids:
173
+ - ycdu6o3yi0jc7rfaqxei,wbeca207fohukg0y7doh,a4li770cewkr5mdzcntt,w79m5h3hjpl2gu7vmyr2,su93n1eqsd9p8jw1gjt7,mghevmsym2u5r5hjcg4l,cnueo2x7jxovu7yxrzu1,583icg9w65zmv9p0owlv,xjifh57wefx9sadw8dsk,9r1cbvaxy660so0rosec,ii0cu8whbp05k4seu0g9,51upjlzc2fiiomb3px3a,rb4n8ibdesq5vpgi5qls,pqzqqi27j140pnsmzjnx,ti8eyk58ij432etthju4,ve10ya82r6clzqh9i3if,qh5surbc19l3vghlvjfl,y435k5tyc3cvshigb0yv,avck3om580t5k1yd3zvj,xwlr6ev2k75c69se228v
174
+ Set-Cookie:
175
+ - __profilin=p%3Dt; path=/; httponly; samesite=lax
176
+ Content-Length:
177
+ - '1633'
178
+ body:
179
+ encoding: UTF-8
180
+ string: '{"links":{"offers.account":"https://www.bookingsync.com/api/v3/accounts/{offers.account}","offers.application":"https://www.bookingsync.com/api/v3/applications/{offers.application}","offers.booking":"https://www.bookingsync.com/api/v3/bookings/{offers.booking}","offers.client":"https://www.bookingsync.com/api/v3/clients/{offers.client}","offers.rental":"https://www.bookingsync.com/api/v3/rentals/{offers.rental}"},"offers":[{"links":{"account":1,"application":1,"booking":null,"client":1,"rental":1},"adults":2,"canceled_at":null,"children":1,"created_at":"2026-08-13T09:44:32Z","created_by_id":1,"created_by_type":"Doorkeeper::Application","currency":"EUR","end_date":"2026-10-08","expires_at":"2026-09-01T12:00:00Z","id":4,"start_date":"2026-10-01","status":"pending","total_amount_cents":55000,"updated_at":"2026-08-13T09:44:32Z"},{"links":{"account":1,"application":1,"booking":null,"client":1,"rental":1},"adults":2,"canceled_at":null,"children":1,"created_at":"2026-08-13T09:44:32Z","created_by_id":1,"created_by_type":"Doorkeeper::Application","currency":"EUR","end_date":"2026-10-08","expires_at":"2026-09-01T12:00:00Z","id":5,"start_date":"2026-10-01","status":"pending","total_amount_cents":55000,"updated_at":"2026-08-13T09:44:32Z"}],"meta":{"Link":{"first":"https://www.bookingsync.com/api/v3/reservations/offers?page=1\u0026per_page=2","prev":"https://www.bookingsync.com/api/v3/reservations/offers?page=1\u0026per_page=2","next":"https://www.bookingsync.com/api/v3/reservations/offers?page=3\u0026per_page=2","last":"https://www.bookingsync.com/api/v3/reservations/offers?page=3\u0026per_page=2"},"X-Total-Pages":"3","X-Total-Count":"5","X-Per-Page":"2"}}'
181
+ recorded_at: Thu, 13 Aug 2026 09:44:42 GMT
182
+ - request:
183
+ method: get
184
+ uri: https://www.bookingsync.com/api/v3/reservations/offers?page=3&per_page=2
185
+ body:
186
+ encoding: UTF-8
187
+ string: "{}"
188
+ headers:
189
+ User-Agent:
190
+ - BookingSync API gem v1.3.1
191
+ Accept:
192
+ - application/vnd.api+json
193
+ Content-Type:
194
+ - application/vnd.api+json
195
+ Authorization:
196
+ - Bearer <<ACCESS_TOKEN>>
197
+ Accept-Encoding:
198
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
199
+ Connection:
200
+ - keep-alive
201
+ Keep-Alive:
202
+ - '30'
203
+ response:
204
+ status:
205
+ code: 200
206
+ message: OK
207
+ headers:
208
+ X-Frame-Options:
209
+ - SAMEORIGIN
210
+ X-Xss-Protection:
211
+ - '0'
212
+ X-Content-Type-Options:
213
+ - nosniff
214
+ X-Permitted-Cross-Domain-Policies:
215
+ - none
216
+ Referrer-Policy:
217
+ - strict-origin-when-cross-origin
218
+ X-Updated-Since-Request-Synced-At:
219
+ - 2026-08-13 09:44:42 UTC
220
+ X-Ratelimit-Limit:
221
+ - '1000000'
222
+ X-Ratelimit-Reset:
223
+ - '1786615200'
224
+ X-Ratelimit-Remaining:
225
+ - '999978'
226
+ Content-Type:
227
+ - application/vnd.api+json; charset=utf-8
228
+ Link:
229
+ - <https://www.bookingsync.com/api/v3/reservations/offers?page=1&per_page=2>; rel="first",
230
+ <https://www.bookingsync.com/api/v3/reservations/offers?page=2&per_page=2>; rel="prev",
231
+ <https://www.bookingsync.com/api/v3/reservations/offers?page=3&per_page=2>; rel="last"
232
+ X-Total-Pages:
233
+ - '3'
234
+ X-Total-Count:
235
+ - '5'
236
+ X-Per-Page:
237
+ - '2'
238
+ X-Current-Page:
239
+ - '3'
240
+ Etag:
241
+ - W/"6e5de810bb85a66f8b615c6e912b2b8b"
242
+ Cache-Control:
243
+ - must-revalidate, private, max-age=0
244
+ X-Request-Id:
245
+ - 1c66c0ba-561e-4db6-9a97-7ebf21f34ae2
246
+ X-Runtime:
247
+ - '0.026034'
248
+ Server-Timing:
249
+ - start_processing.action_controller;dur=0.03, sql.active_record;dur=13.85,
250
+ instantiation.active_record;dur=0.70, cache_increment.active_support;dur=0.56,
251
+ Api::V3::UpdatedSinceSearch.results;dur=0.24, Api::V3::Concerns::SmartEagerLoadable/with_dynamic_includes;dur=0.19,
252
+ Api::V3::UpdatedSinceSearch.meta;dur=0.03, render.base_controller;dur=3.21,
253
+ default_render.api_responder;dur=0.49, attributes.base_serializer;dur=0.09,
254
+ associations.base_serializer;dur=0.03, _links_templates.base_serializer;dur=0.15,
255
+ _links.base_serializer;dur=0.05, serializable_object.base_serializer;dur=0.39,
256
+ display.api_responder;dur=2.79, api_behavior.api_responder;dur=2.83, process_action.action_controller;dur=23.65
257
+ Vary:
258
+ - Origin
259
+ X-Miniprofiler-Original-Cache-Control:
260
+ - max-age=0, private, must-revalidate
261
+ X-Miniprofiler-Ids:
262
+ - ucv0vs4vz1ai6ytk030,ycdu6o3yi0jc7rfaqxei,wbeca207fohukg0y7doh,a4li770cewkr5mdzcntt,w79m5h3hjpl2gu7vmyr2,su93n1eqsd9p8jw1gjt7,mghevmsym2u5r5hjcg4l,cnueo2x7jxovu7yxrzu1,583icg9w65zmv9p0owlv,xjifh57wefx9sadw8dsk,9r1cbvaxy660so0rosec,ii0cu8whbp05k4seu0g9,51upjlzc2fiiomb3px3a,rb4n8ibdesq5vpgi5qls,pqzqqi27j140pnsmzjnx,ti8eyk58ij432etthju4,ve10ya82r6clzqh9i3if,qh5surbc19l3vghlvjfl,y435k5tyc3cvshigb0yv,avck3om580t5k1yd3zvj
263
+ Set-Cookie:
264
+ - __profilin=p%3Dt; path=/; httponly; samesite=lax
265
+ Content-Length:
266
+ - '1142'
267
+ body:
268
+ encoding: UTF-8
269
+ string: '{"links":{"offers.account":"https://www.bookingsync.com/api/v3/accounts/{offers.account}","offers.application":"https://www.bookingsync.com/api/v3/applications/{offers.application}","offers.booking":"https://www.bookingsync.com/api/v3/bookings/{offers.booking}","offers.client":"https://www.bookingsync.com/api/v3/clients/{offers.client}","offers.rental":"https://www.bookingsync.com/api/v3/rentals/{offers.rental}"},"offers":[{"links":{"account":1,"application":1,"booking":null,"client":1,"rental":1},"adults":2,"canceled_at":null,"children":1,"created_at":"2026-08-13T09:44:32Z","created_by_id":1,"created_by_type":"Doorkeeper::Application","currency":"EUR","end_date":"2026-10-08","expires_at":"2026-09-01T12:00:00Z","id":6,"start_date":"2026-10-01","status":"pending","total_amount_cents":55000,"updated_at":"2026-08-13T09:44:32Z"}],"meta":{"Link":{"first":"https://www.bookingsync.com/api/v3/reservations/offers?page=1\u0026per_page=2","prev":"https://www.bookingsync.com/api/v3/reservations/offers?page=2\u0026per_page=2","last":"https://www.bookingsync.com/api/v3/reservations/offers?page=3\u0026per_page=2"},"X-Total-Pages":"3","X-Total-Count":"5","X-Per-Page":"2"}}'
270
+ recorded_at: Thu, 13 Aug 2026 09:44:42 GMT
271
+ - request:
272
+ method: get
273
+ uri: https://www.bookingsync.com/api/v3/reservations/offers?per_page=100
274
+ body:
275
+ encoding: UTF-8
276
+ string: "{}"
277
+ headers:
278
+ User-Agent:
279
+ - BookingSync API gem v1.3.1
280
+ Accept:
281
+ - application/vnd.api+json
282
+ Content-Type:
283
+ - application/vnd.api+json
284
+ Authorization:
285
+ - Bearer <<ACCESS_TOKEN>>
286
+ Accept-Encoding:
287
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
288
+ Connection:
289
+ - keep-alive
290
+ Keep-Alive:
291
+ - '30'
292
+ response:
293
+ status:
294
+ code: 200
295
+ message: OK
296
+ headers:
297
+ X-Frame-Options:
298
+ - SAMEORIGIN
299
+ X-Xss-Protection:
300
+ - '0'
301
+ X-Content-Type-Options:
302
+ - nosniff
303
+ X-Permitted-Cross-Domain-Policies:
304
+ - none
305
+ Referrer-Policy:
306
+ - strict-origin-when-cross-origin
307
+ X-Updated-Since-Request-Synced-At:
308
+ - 2026-08-13 09:44:42 UTC
309
+ X-Ratelimit-Limit:
310
+ - '1000000'
311
+ X-Ratelimit-Reset:
312
+ - '1786615200'
313
+ X-Ratelimit-Remaining:
314
+ - '999977'
315
+ Content-Type:
316
+ - application/vnd.api+json; charset=utf-8
317
+ Link:
318
+ - <https://www.bookingsync.com/api/v3/reservations/offers?page=1&per_page=100>; rel="first",
319
+ <https://www.bookingsync.com/api/v3/reservations/offers?page=1&per_page=100>; rel="last"
320
+ X-Total-Pages:
321
+ - '1'
322
+ X-Total-Count:
323
+ - '5'
324
+ X-Per-Page:
325
+ - '100'
326
+ X-Current-Page:
327
+ - '1'
328
+ Etag:
329
+ - W/"5d0eb924c42c1f0336d5979cfc4958fd"
330
+ Cache-Control:
331
+ - must-revalidate, private, max-age=0
332
+ X-Request-Id:
333
+ - f04df1d1-61f1-456a-93a7-2052acd1cf5c
334
+ X-Runtime:
335
+ - '0.026957'
336
+ Server-Timing:
337
+ - start_processing.action_controller;dur=0.02, sql.active_record;dur=14.05,
338
+ instantiation.active_record;dur=0.66, cache_increment.active_support;dur=0.51,
339
+ Api::V3::UpdatedSinceSearch.results;dur=0.21, Api::V3::Concerns::SmartEagerLoadable/with_dynamic_includes;dur=0.14,
340
+ Api::V3::UpdatedSinceSearch.meta;dur=0.03, render.base_controller;dur=4.82,
341
+ default_render.api_responder;dur=0.52, attributes.base_serializer;dur=0.41,
342
+ associations.base_serializer;dur=0.15, _links_templates.base_serializer;dur=0.57,
343
+ _links.base_serializer;dur=0.20, serializable_object.base_serializer;dur=1.59,
344
+ display.api_responder;dur=4.38, api_behavior.api_responder;dur=4.42, process_action.action_controller;dur=24.62
345
+ Vary:
346
+ - Origin
347
+ X-Miniprofiler-Original-Cache-Control:
348
+ - max-age=0, private, must-revalidate
349
+ X-Miniprofiler-Ids:
350
+ - ra82uxje18ygexj4ebq7,ucv0vs4vz1ai6ytk030,ycdu6o3yi0jc7rfaqxei,wbeca207fohukg0y7doh,a4li770cewkr5mdzcntt,w79m5h3hjpl2gu7vmyr2,su93n1eqsd9p8jw1gjt7,mghevmsym2u5r5hjcg4l,cnueo2x7jxovu7yxrzu1,583icg9w65zmv9p0owlv,xjifh57wefx9sadw8dsk,9r1cbvaxy660so0rosec,ii0cu8whbp05k4seu0g9,51upjlzc2fiiomb3px3a,rb4n8ibdesq5vpgi5qls,pqzqqi27j140pnsmzjnx,ti8eyk58ij432etthju4,ve10ya82r6clzqh9i3if,qh5surbc19l3vghlvjfl,y435k5tyc3cvshigb0yv
351
+ Set-Cookie:
352
+ - __profilin=p%3Dt; path=/; httponly; samesite=lax
353
+ Content-Length:
354
+ - '2707'
355
+ body:
356
+ encoding: UTF-8
357
+ string: '{"links":{"offers.account":"https://www.bookingsync.com/api/v3/accounts/{offers.account}","offers.application":"https://www.bookingsync.com/api/v3/applications/{offers.application}","offers.booking":"https://www.bookingsync.com/api/v3/bookings/{offers.booking}","offers.client":"https://www.bookingsync.com/api/v3/clients/{offers.client}","offers.rental":"https://www.bookingsync.com/api/v3/rentals/{offers.rental}"},"offers":[{"links":{"account":1,"application":1,"booking":null,"client":1,"rental":1},"adults":2,"canceled_at":null,"children":0,"created_at":"2026-08-13T09:19:56Z","created_by_id":1,"created_by_type":"Doorkeeper::Application","currency":"EUR","end_date":"2026-10-08","expires_at":"2026-09-01T12:00:00Z","id":1,"start_date":"2026-10-01","status":"pending","total_amount_cents":99000,"updated_at":"2026-08-13T09:20:10Z"},{"links":{"account":1,"application":1,"booking":null,"client":1,"rental":1},"adults":2,"canceled_at":null,"children":1,"created_at":"2026-08-13T09:34:10Z","created_by_id":1,"created_by_type":"Doorkeeper::Application","currency":"EUR","end_date":"2026-10-08","expires_at":"2026-09-01T12:00:00Z","id":2,"start_date":"2026-10-01","status":"pending","total_amount_cents":55000,"updated_at":"2026-08-13T09:34:10Z"},{"links":{"account":1,"application":1,"booking":null,"client":1,"rental":1},"adults":2,"canceled_at":null,"children":1,"created_at":"2026-08-13T09:44:32Z","created_by_id":1,"created_by_type":"Doorkeeper::Application","currency":"EUR","end_date":"2026-10-08","expires_at":"2026-09-01T12:00:00Z","id":4,"start_date":"2026-10-01","status":"pending","total_amount_cents":55000,"updated_at":"2026-08-13T09:44:32Z"},{"links":{"account":1,"application":1,"booking":null,"client":1,"rental":1},"adults":2,"canceled_at":null,"children":1,"created_at":"2026-08-13T09:44:32Z","created_by_id":1,"created_by_type":"Doorkeeper::Application","currency":"EUR","end_date":"2026-10-08","expires_at":"2026-09-01T12:00:00Z","id":5,"start_date":"2026-10-01","status":"pending","total_amount_cents":55000,"updated_at":"2026-08-13T09:44:32Z"},{"links":{"account":1,"application":1,"booking":null,"client":1,"rental":1},"adults":2,"canceled_at":null,"children":1,"created_at":"2026-08-13T09:44:32Z","created_by_id":1,"created_by_type":"Doorkeeper::Application","currency":"EUR","end_date":"2026-10-08","expires_at":"2026-09-01T12:00:00Z","id":6,"start_date":"2026-10-01","status":"pending","total_amount_cents":55000,"updated_at":"2026-08-13T09:44:32Z"}],"meta":{"Link":{"first":"https://www.bookingsync.com/api/v3/reservations/offers?page=1\u0026per_page=100","last":"https://www.bookingsync.com/api/v3/reservations/offers?page=1\u0026per_page=100"},"X-Total-Pages":"1","X-Total-Count":"5","X-Per-Page":"100"}}'
358
+ recorded_at: Thu, 13 Aug 2026 09:44:42 GMT
359
+ recorded_with: VCR 6.4.0
@@ -0,0 +1,91 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://www.bookingsync.com/api/v3/reservations/offers
6
+ body:
7
+ encoding: UTF-8
8
+ string: "{}"
9
+ headers:
10
+ User-Agent:
11
+ - BookingSync API gem v1.3.1
12
+ Accept:
13
+ - application/vnd.api+json
14
+ Content-Type:
15
+ - application/vnd.api+json
16
+ Authorization:
17
+ - Bearer <<ACCESS_TOKEN>>
18
+ Accept-Encoding:
19
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
20
+ Connection:
21
+ - keep-alive
22
+ Keep-Alive:
23
+ - '30'
24
+ response:
25
+ status:
26
+ code: 200
27
+ message: OK
28
+ headers:
29
+ X-Frame-Options:
30
+ - SAMEORIGIN
31
+ X-Xss-Protection:
32
+ - '0'
33
+ X-Content-Type-Options:
34
+ - nosniff
35
+ X-Permitted-Cross-Domain-Policies:
36
+ - none
37
+ Referrer-Policy:
38
+ - strict-origin-when-cross-origin
39
+ X-Updated-Since-Request-Synced-At:
40
+ - 2026-08-13 09:44:42 UTC
41
+ X-Ratelimit-Limit:
42
+ - '1000000'
43
+ X-Ratelimit-Reset:
44
+ - '1786615200'
45
+ X-Ratelimit-Remaining:
46
+ - '999981'
47
+ Content-Type:
48
+ - application/vnd.api+json; charset=utf-8
49
+ Link:
50
+ - <https://www.bookingsync.com/api/v3/reservations/offers?page=1>; rel="first", <https://www.bookingsync.com/api/v3/reservations/offers?page=1>;
51
+ rel="last"
52
+ X-Total-Pages:
53
+ - '1'
54
+ X-Total-Count:
55
+ - '5'
56
+ X-Per-Page:
57
+ - '100'
58
+ X-Current-Page:
59
+ - '1'
60
+ Etag:
61
+ - W/"31a92b2478efa35cb31443208a9f4280"
62
+ Cache-Control:
63
+ - must-revalidate, private, max-age=0
64
+ X-Request-Id:
65
+ - 3e2cc212-6709-4c83-ae45-5725302f888a
66
+ X-Runtime:
67
+ - '0.029848'
68
+ Server-Timing:
69
+ - start_processing.action_controller;dur=0.03, sql.active_record;dur=16.73,
70
+ instantiation.active_record;dur=0.64, cache_increment.active_support;dur=0.92,
71
+ Api::V3::UpdatedSinceSearch.results;dur=0.19, Api::V3::Concerns::SmartEagerLoadable/with_dynamic_includes;dur=0.13,
72
+ Api::V3::UpdatedSinceSearch.meta;dur=0.02, render.base_controller;dur=5.02,
73
+ default_render.api_responder;dur=0.44, attributes.base_serializer;dur=0.30,
74
+ associations.base_serializer;dur=0.22, _links_templates.base_serializer;dur=0.59,
75
+ _links.base_serializer;dur=0.21, serializable_object.base_serializer;dur=1.65,
76
+ display.api_responder;dur=4.65, api_behavior.api_responder;dur=4.68, process_action.action_controller;dur=27.37
77
+ Vary:
78
+ - Origin
79
+ X-Miniprofiler-Original-Cache-Control:
80
+ - max-age=0, private, must-revalidate
81
+ X-Miniprofiler-Ids:
82
+ - xwlr6ev2k75c69se228v,wbeca207fohukg0y7doh,a4li770cewkr5mdzcntt,w79m5h3hjpl2gu7vmyr2,su93n1eqsd9p8jw1gjt7,mghevmsym2u5r5hjcg4l,cnueo2x7jxovu7yxrzu1,583icg9w65zmv9p0owlv,xjifh57wefx9sadw8dsk,9r1cbvaxy660so0rosec,ii0cu8whbp05k4seu0g9,51upjlzc2fiiomb3px3a,rb4n8ibdesq5vpgi5qls,pqzqqi27j140pnsmzjnx,ti8eyk58ij432etthju4,ve10ya82r6clzqh9i3if,qh5surbc19l3vghlvjfl,y435k5tyc3cvshigb0yv,avck3om580t5k1yd3zvj
83
+ Set-Cookie:
84
+ - __profilin=p%3Dt; path=/; httponly; samesite=lax
85
+ Content-Length:
86
+ - '2671'
87
+ body:
88
+ encoding: UTF-8
89
+ string: '{"links":{"offers.account":"https://www.bookingsync.com/api/v3/accounts/{offers.account}","offers.application":"https://www.bookingsync.com/api/v3/applications/{offers.application}","offers.booking":"https://www.bookingsync.com/api/v3/bookings/{offers.booking}","offers.client":"https://www.bookingsync.com/api/v3/clients/{offers.client}","offers.rental":"https://www.bookingsync.com/api/v3/rentals/{offers.rental}"},"offers":[{"links":{"account":1,"application":1,"booking":null,"client":1,"rental":1},"adults":2,"canceled_at":null,"children":0,"created_at":"2026-08-13T09:19:56Z","created_by_id":1,"created_by_type":"Doorkeeper::Application","currency":"EUR","end_date":"2026-10-08","expires_at":"2026-09-01T12:00:00Z","id":1,"start_date":"2026-10-01","status":"pending","total_amount_cents":99000,"updated_at":"2026-08-13T09:20:10Z"},{"links":{"account":1,"application":1,"booking":null,"client":1,"rental":1},"adults":2,"canceled_at":null,"children":1,"created_at":"2026-08-13T09:34:10Z","created_by_id":1,"created_by_type":"Doorkeeper::Application","currency":"EUR","end_date":"2026-10-08","expires_at":"2026-09-01T12:00:00Z","id":2,"start_date":"2026-10-01","status":"pending","total_amount_cents":55000,"updated_at":"2026-08-13T09:34:10Z"},{"links":{"account":1,"application":1,"booking":null,"client":1,"rental":1},"adults":2,"canceled_at":null,"children":1,"created_at":"2026-08-13T09:44:32Z","created_by_id":1,"created_by_type":"Doorkeeper::Application","currency":"EUR","end_date":"2026-10-08","expires_at":"2026-09-01T12:00:00Z","id":4,"start_date":"2026-10-01","status":"pending","total_amount_cents":55000,"updated_at":"2026-08-13T09:44:32Z"},{"links":{"account":1,"application":1,"booking":null,"client":1,"rental":1},"adults":2,"canceled_at":null,"children":1,"created_at":"2026-08-13T09:44:32Z","created_by_id":1,"created_by_type":"Doorkeeper::Application","currency":"EUR","end_date":"2026-10-08","expires_at":"2026-09-01T12:00:00Z","id":5,"start_date":"2026-10-01","status":"pending","total_amount_cents":55000,"updated_at":"2026-08-13T09:44:32Z"},{"links":{"account":1,"application":1,"booking":null,"client":1,"rental":1},"adults":2,"canceled_at":null,"children":1,"created_at":"2026-08-13T09:44:32Z","created_by_id":1,"created_by_type":"Doorkeeper::Application","currency":"EUR","end_date":"2026-10-08","expires_at":"2026-09-01T12:00:00Z","id":6,"start_date":"2026-10-01","status":"pending","total_amount_cents":55000,"updated_at":"2026-08-13T09:44:32Z"}],"meta":{"Link":{"first":"https://www.bookingsync.com/api/v3/reservations/offers?page=1","last":"https://www.bookingsync.com/api/v3/reservations/offers?page=1"},"X-Total-Pages":"1","X-Total-Count":"5","X-Per-Page":"100"}}'
90
+ recorded_at: Thu, 13 Aug 2026 09:44:42 GMT
91
+ recorded_with: VCR 6.4.0
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bookingsync-api
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.1
4
+ version: 1.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sébastien Grosjean
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-08-10 00:00:00.000000000 Z
11
+ date: 2026-08-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -191,6 +191,7 @@ files:
191
191
  - lib/bookingsync/api/client/rentals_amenities.rb
192
192
  - lib/bookingsync/api/client/rentals_contents_overrides.rb
193
193
  - lib/bookingsync/api/client/rentals_fees.rb
194
+ - lib/bookingsync/api/client/reservations_offers.rb
194
195
  - lib/bookingsync/api/client/reservations_requests.rb
195
196
  - lib/bookingsync/api/client/review_replies.rb
196
197
  - lib/bookingsync/api/client/reviews.rb
@@ -249,6 +250,7 @@ files:
249
250
  - spec/bookingsync/api/client/rentals_contents_overrides_spec.rb
250
251
  - spec/bookingsync/api/client/rentals_fees_spec.rb
251
252
  - spec/bookingsync/api/client/rentals_spec.rb
253
+ - spec/bookingsync/api/client/reservations_offers_spec.rb
252
254
  - spec/bookingsync/api/client/reservations_requests_spec.rb
253
255
  - spec/bookingsync/api/client/review_replies_spec.rb
254
256
  - spec/bookingsync/api/client/reviews_spec.rb
@@ -460,6 +462,12 @@ files:
460
462
  - spec/fixtures/cassettes/BookingSync_API_Client_RentalsFees/_create_rentals_fee/creates_a_new_rentals_fee.yml
461
463
  - spec/fixtures/cassettes/BookingSync_API_Client_RentalsFees/_rentals_fee/returns_a_single_rentals_fee.yml
462
464
  - spec/fixtures/cassettes/BookingSync_API_Client_RentalsFees/_rentals_fees/returns_rentals_fees.yml
465
+ - spec/fixtures/cassettes/BookingSync_API_Client_ReservationsOffers/_create_reservation_offer/creates_a_new_reservations_offer.yml
466
+ - spec/fixtures/cassettes/BookingSync_API_Client_ReservationsOffers/_delete_reservation_offer/soft-cancels_given_reservations_offer.yml
467
+ - spec/fixtures/cassettes/BookingSync_API_Client_ReservationsOffers/_patch_reservation_offer/updates_given_reservations_offer_by_ID.yml
468
+ - spec/fixtures/cassettes/BookingSync_API_Client_ReservationsOffers/_reservations_offer/returns_a_single_reservations_offer.yml
469
+ - spec/fixtures/cassettes/BookingSync_API_Client_ReservationsOffers/_reservations_offers/pagination/with_auto_paginate_true/returns_all_reservations_offers_joined_from_many_requests.yml
470
+ - spec/fixtures/cassettes/BookingSync_API_Client_ReservationsOffers/_reservations_offers/returns_reservations_offers.yml
463
471
  - spec/fixtures/cassettes/BookingSync_API_Client_ReservationsRequests/_create_reservation_request/creates_a_new_reservations_request.yml
464
472
  - spec/fixtures/cassettes/BookingSync_API_Client_ReservationsRequests/_delete_reservation_request/deletes_given_reservations_request.yml
465
473
  - spec/fixtures/cassettes/BookingSync_API_Client_ReservationsRequests/_patch_reservation_request/updates_given_reservations_request_by_ID.yml
@@ -562,6 +570,7 @@ test_files:
562
570
  - spec/bookingsync/api/client/rentals_contents_overrides_spec.rb
563
571
  - spec/bookingsync/api/client/rentals_fees_spec.rb
564
572
  - spec/bookingsync/api/client/rentals_spec.rb
573
+ - spec/bookingsync/api/client/reservations_offers_spec.rb
565
574
  - spec/bookingsync/api/client/reservations_requests_spec.rb
566
575
  - spec/bookingsync/api/client/review_replies_spec.rb
567
576
  - spec/bookingsync/api/client/reviews_spec.rb
@@ -773,6 +782,12 @@ test_files:
773
782
  - spec/fixtures/cassettes/BookingSync_API_Client_RentalsFees/_create_rentals_fee/creates_a_new_rentals_fee.yml
774
783
  - spec/fixtures/cassettes/BookingSync_API_Client_RentalsFees/_rentals_fee/returns_a_single_rentals_fee.yml
775
784
  - spec/fixtures/cassettes/BookingSync_API_Client_RentalsFees/_rentals_fees/returns_rentals_fees.yml
785
+ - spec/fixtures/cassettes/BookingSync_API_Client_ReservationsOffers/_create_reservation_offer/creates_a_new_reservations_offer.yml
786
+ - spec/fixtures/cassettes/BookingSync_API_Client_ReservationsOffers/_delete_reservation_offer/soft-cancels_given_reservations_offer.yml
787
+ - spec/fixtures/cassettes/BookingSync_API_Client_ReservationsOffers/_patch_reservation_offer/updates_given_reservations_offer_by_ID.yml
788
+ - spec/fixtures/cassettes/BookingSync_API_Client_ReservationsOffers/_reservations_offer/returns_a_single_reservations_offer.yml
789
+ - spec/fixtures/cassettes/BookingSync_API_Client_ReservationsOffers/_reservations_offers/pagination/with_auto_paginate_true/returns_all_reservations_offers_joined_from_many_requests.yml
790
+ - spec/fixtures/cassettes/BookingSync_API_Client_ReservationsOffers/_reservations_offers/returns_reservations_offers.yml
776
791
  - spec/fixtures/cassettes/BookingSync_API_Client_ReservationsRequests/_create_reservation_request/creates_a_new_reservations_request.yml
777
792
  - spec/fixtures/cassettes/BookingSync_API_Client_ReservationsRequests/_delete_reservation_request/deletes_given_reservations_request.yml
778
793
  - spec/fixtures/cassettes/BookingSync_API_Client_ReservationsRequests/_patch_reservation_request/updates_given_reservations_request_by_ID.yml