bookingsync-api 0.1.2 → 0.1.3
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 +4 -4
- data/.travis.yml +3 -0
- data/CHANGELOG.md +5 -0
- data/Gemfile +11 -11
- data/Guardfile +1 -1
- data/README.md +1 -0
- data/Rakefile +13 -3
- data/bookingsync-api.gemspec +3 -3
- data/lib/bookingsync-api.rb +1 -1
- data/lib/bookingsync/api/client.rb +7 -4
- data/lib/bookingsync/api/client/booking_comments.rb +1 -1
- data/lib/bookingsync/api/client/living_rooms.rb +65 -0
- data/lib/bookingsync/api/error.rb +1 -1
- data/lib/bookingsync/api/middleware/logger.rb +6 -6
- data/lib/bookingsync/api/resource.rb +1 -1
- data/lib/bookingsync/api/response.rb +2 -2
- data/lib/bookingsync/api/serializer.rb +5 -5
- data/lib/bookingsync/api/version.rb +1 -1
- data/spec/bookingsync/api/client/bathrooms_spec.rb +10 -9
- data/spec/bookingsync/api/client/bedrooms_spec.rb +10 -9
- data/spec/bookingsync/api/client/bookings_spec.rb +13 -13
- data/spec/bookingsync/api/client/clients_spec.rb +13 -11
- data/spec/bookingsync/api/client/fees_spec.rb +2 -2
- data/spec/bookingsync/api/client/inquiries_spec.rb +12 -10
- data/spec/bookingsync/api/client/living_rooms_spec.rb +62 -0
- data/spec/bookingsync/api/client/nightly_rate_maps_spec.rb +1 -1
- data/spec/bookingsync/api/client/payments_spec.rb +8 -11
- data/spec/bookingsync/api/client/periods_spec.rb +5 -5
- data/spec/bookingsync/api/client/photos_spec.rb +6 -6
- data/spec/bookingsync/api/client/preferences_general_settings_spec.rb +1 -1
- data/spec/bookingsync/api/client/preferences_payments_spec.rb +0 -1
- data/spec/bookingsync/api/client/rates_rules_spec.rb +3 -4
- data/spec/bookingsync/api/client/rates_tables_spec.rb +4 -5
- data/spec/bookingsync/api/client/rental_agreements_spec.rb +5 -5
- data/spec/bookingsync/api/client/rentals_amenities_spec.rb +4 -4
- data/spec/bookingsync/api/client/rentals_fees_spec.rb +1 -1
- data/spec/bookingsync/api/client/rentals_spec.rb +7 -10
- data/spec/bookingsync/api/client/reviews_spec.rb +3 -6
- data/spec/bookingsync/api/client/seasons_spec.rb +4 -9
- data/spec/bookingsync/api/client/sources_spec.rb +4 -5
- data/spec/bookingsync/api/client/special_offers_spec.rb +6 -6
- data/spec/bookingsync/api/client/strict_bookings_spec.rb +8 -8
- data/spec/bookingsync/api/client_spec.rb +29 -15
- data/spec/bookingsync/api/error_spec.rb +3 -3
- data/spec/bookingsync/api/relation_spec.rb +8 -6
- data/spec/bookingsync/api/resource_spec.rb +29 -26
- data/spec/bookingsync/api/response_spec.rb +16 -15
- data/spec/fixtures/cassettes/BookingSync_API_Client_LivingRooms/_cancel_living_room/cancels_given_living_room.yml +69 -0
- data/spec/fixtures/cassettes/BookingSync_API_Client_LivingRooms/_create_living_room/creates_a_new_living_room.yml +82 -0
- data/spec/fixtures/cassettes/BookingSync_API_Client_LivingRooms/_edit_living_room/updates_given_living_room_by_ID.yml +75 -0
- data/spec/fixtures/cassettes/BookingSync_API_Client_LivingRooms/_living_room/returns_a_single_living_room.yml +84 -0
- data/spec/fixtures/cassettes/BookingSync_API_Client_LivingRooms/_living_rooms/returns_living_rooms.yml +84 -0
- data/spec/spec_helper.rb +12 -12
- metadata +29 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6915dfa213253a45f23f6ce051ac640ced0823b7
|
4
|
+
data.tar.gz: a799e2b306a6adb73939bab9ea6aa2ab63693a9f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: af88da09b10078bb703df8da722f11cac55cde73df7982400c84d1912642d1726717be0210a235048dc1a1d704d6533eb632daa35ca1d55484d0c2dafa45a084
|
7
|
+
data.tar.gz: 2629e80e6e1461153041c3920d73ac6ae0b8f42eedad7ef4bbbd1645f4014182543e825c3de25c295a03d3af4030de00d1536f1e63e0dad3a5c5d134eb49f0ef
|
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
data/Gemfile
CHANGED
@@ -1,17 +1,17 @@
|
|
1
|
-
source
|
1
|
+
source "https://rubygems.org"
|
2
2
|
|
3
3
|
# Specify your gem's dependencies in bookingsync-api.gemspec
|
4
4
|
|
5
|
-
group
|
6
|
-
gem
|
7
|
-
gem
|
8
|
-
gem
|
9
|
-
gem
|
10
|
-
gem
|
11
|
-
gem
|
12
|
-
gem
|
13
|
-
gem
|
14
|
-
gem
|
5
|
+
group "test" do
|
6
|
+
gem "rspec"
|
7
|
+
gem "vcr"
|
8
|
+
gem "webmock"
|
9
|
+
gem "guard"
|
10
|
+
gem "guard-rspec"
|
11
|
+
gem "yard"
|
12
|
+
gem "ruby_gntp"
|
13
|
+
gem "pry"
|
14
|
+
gem "listen", "~> 3.0.0"
|
15
15
|
end
|
16
16
|
|
17
17
|
gemspec
|
data/Guardfile
CHANGED
@@ -3,5 +3,5 @@ guard :rspec, cmd: "bundle exec rspec --format p" do
|
|
3
3
|
watch(%r{^lib/bookingsync/(.+)\.rb$}) { |m| "spec/bookingsync/#{m[1]}_spec.rb" }
|
4
4
|
watch(%r{^lib/bookingsync/api/client/(.+)\.rb$}) { |m| "spec/bookingsync/api/client/#{m[1]}_spec.rb" }
|
5
5
|
watch(%r{^lib/bookingsync/api/(.+)\.rb$}) { |m| "spec" }
|
6
|
-
watch(
|
6
|
+
watch("spec/spec_helper.rb") { "spec" }
|
7
7
|
end
|
data/README.md
CHANGED
@@ -67,6 +67,7 @@ access last response.
|
|
67
67
|
```ruby
|
68
68
|
api.rentals(updated_since: "2014-01-01 15:43:96 UTC") # => [BookingSync::API::Resource, BookingSync::API::Resource, ...]
|
69
69
|
api.last_response.meta # => {"deleted_ids" => [1, 3, 4]}
|
70
|
+
api.pagination_first_response.meta # => {"deleted_ids" => [1, 3, 4]}
|
70
71
|
```
|
71
72
|
|
72
73
|
### Logging
|
data/Rakefile
CHANGED
@@ -1,4 +1,14 @@
|
|
1
|
-
|
2
|
-
require
|
3
|
-
|
1
|
+
begin
|
2
|
+
require "bundler/setup"
|
3
|
+
rescue LoadError
|
4
|
+
puts "You must `gem install bundler` and `bundle install` to run rake tasks"
|
5
|
+
end
|
6
|
+
|
7
|
+
Bundler::GemHelper.install_tasks
|
8
|
+
|
9
|
+
require "rspec/core/rake_task"
|
10
|
+
task default: :spec
|
4
11
|
RSpec::Core::RakeTask.new
|
12
|
+
|
13
|
+
require "bookingsync/stylecheck"
|
14
|
+
load "bookingsync/tasks/stylecheck.rake"
|
data/bookingsync-api.gemspec
CHANGED
@@ -1,7 +1,6 @@
|
|
1
|
-
|
2
|
-
lib = File.expand_path('../lib', __FILE__)
|
1
|
+
lib = File.expand_path("../lib", __FILE__)
|
3
2
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
-
require
|
3
|
+
require "bookingsync/api/version"
|
5
4
|
|
6
5
|
Gem::Specification.new do |spec|
|
7
6
|
spec.name = "bookingsync-api"
|
@@ -23,4 +22,5 @@ Gem::Specification.new do |spec|
|
|
23
22
|
spec.add_dependency "addressable"
|
24
23
|
spec.add_development_dependency "bundler", "~> 1.5"
|
25
24
|
spec.add_development_dependency "rake"
|
25
|
+
spec.add_development_dependency "bookingsync-stylecheck"
|
26
26
|
end
|
data/lib/bookingsync-api.rb
CHANGED
@@ -1 +1 @@
|
|
1
|
-
require
|
1
|
+
require "bookingsync/api"
|
@@ -14,6 +14,7 @@ require "bookingsync/api/client/clients"
|
|
14
14
|
require "bookingsync/api/client/destinations"
|
15
15
|
require "bookingsync/api/client/fees"
|
16
16
|
require "bookingsync/api/client/inquiries"
|
17
|
+
require "bookingsync/api/client/living_rooms"
|
17
18
|
require "bookingsync/api/client/nightly_rate_maps"
|
18
19
|
require "bookingsync/api/client/strict_bookings"
|
19
20
|
require "bookingsync/api/client/periods"
|
@@ -62,6 +63,7 @@ module BookingSync::API
|
|
62
63
|
include BookingSync::API::Client::Destinations
|
63
64
|
include BookingSync::API::Client::Fees
|
64
65
|
include BookingSync::API::Client::Inquiries
|
66
|
+
include BookingSync::API::Client::LivingRooms
|
65
67
|
include BookingSync::API::Client::NightlyRateMaps
|
66
68
|
include BookingSync::API::Client::StrictBookings
|
67
69
|
include BookingSync::API::Client::Periods
|
@@ -87,7 +89,7 @@ module BookingSync::API
|
|
87
89
|
|
88
90
|
MEDIA_TYPE = "application/vnd.api+json"
|
89
91
|
|
90
|
-
attr_reader :token, :logger, :last_response
|
92
|
+
attr_reader :token, :logger, :pagination_first_response, :last_response
|
91
93
|
|
92
94
|
def_delegator :@instrumenter, :instrument
|
93
95
|
|
@@ -208,9 +210,10 @@ module BookingSync::API
|
|
208
210
|
else
|
209
211
|
response = call(request_method, path, options)
|
210
212
|
end
|
213
|
+
@pagination_first_response = response
|
211
214
|
data = response.resources.dup
|
212
215
|
|
213
|
-
if (block_given?
|
216
|
+
if (block_given? || auto_paginate) && response.relations[:next]
|
214
217
|
first_request = true
|
215
218
|
loop do
|
216
219
|
if block_given?
|
@@ -220,7 +223,7 @@ module BookingSync::API
|
|
220
223
|
first_request = false
|
221
224
|
end
|
222
225
|
break unless response.relations[:next]
|
223
|
-
response = response.relations[:next].call({}, method: request_method)
|
226
|
+
response = response.relations[:next].call({}, { method: request_method })
|
224
227
|
end
|
225
228
|
end
|
226
229
|
|
@@ -248,7 +251,7 @@ module BookingSync::API
|
|
248
251
|
|
249
252
|
if options.has_key?(:query)
|
250
253
|
if options[:query].has_key?(:ids)
|
251
|
-
ids = Array(options[:query].delete(:ids)).join(
|
254
|
+
ids = Array(options[:query].delete(:ids)).join(",")
|
252
255
|
path = "#{path}/#{ids}"
|
253
256
|
end
|
254
257
|
options[:query].keys.each do |key|
|
@@ -41,7 +41,7 @@ module BookingSync::API
|
|
41
41
|
# @api.create_booking_comment(1, content: "Hello!")
|
42
42
|
# => {:links=>{:booking=>1}, :id=>8, :content=>"Hello!", :editable=>true, :created_at=>2016-04-18 13:31:40 UTC, :updated_at=>2016-04-18 13:46:06 UTC}
|
43
43
|
def create_booking_comment(booking, options = {})
|
44
|
-
post("booking_comments",
|
44
|
+
post("booking_comments", booking_id: booking, booking_comments: [options]).pop
|
45
45
|
end
|
46
46
|
|
47
47
|
# Edit a booking_comment
|
@@ -0,0 +1,65 @@
|
|
1
|
+
module BookingSync::API
|
2
|
+
class Client
|
3
|
+
module LivingRooms
|
4
|
+
# List living_rooms
|
5
|
+
#
|
6
|
+
# Returns living_rooms for the account user is authenticated with.
|
7
|
+
# @param options [Hash] A customizable set of options.
|
8
|
+
# @option options [Array] fields: List of fields to be fetched.
|
9
|
+
# @return [Array<BookingSync::API::Resource>] Array of living_rooms.
|
10
|
+
#
|
11
|
+
# @example Get the list of living_rooms for the current account
|
12
|
+
# living_rooms = @api.living_rooms
|
13
|
+
# living_rooms.first.bunk_beds_count # => 2
|
14
|
+
# @example Get the list of living_rooms only with bunk_beds_count for smaller response
|
15
|
+
# @api.living_rooms(fields: [:bunk_beds_count])
|
16
|
+
def living_rooms(options = {}, &block)
|
17
|
+
paginate :living_rooms, options, &block
|
18
|
+
end
|
19
|
+
|
20
|
+
# Get a single living_room
|
21
|
+
#
|
22
|
+
# @param living_room [BookingSync::API::Resource|Integer] LivingRoom or ID
|
23
|
+
# of the living_room.
|
24
|
+
# @param options [Hash] A customizable set of query options.
|
25
|
+
# @option options [Array] fields: List of fields to be fetched.
|
26
|
+
# @return [BookingSync::API::Resource]
|
27
|
+
def living_room(living_room, options = {})
|
28
|
+
get("living_rooms/#{living_room}", options).pop
|
29
|
+
end
|
30
|
+
|
31
|
+
# Create a new living_room
|
32
|
+
#
|
33
|
+
# @param rental [BookingSync::API::Resource|Integer] Rental or ID of
|
34
|
+
# the rental for which living_room will be created.
|
35
|
+
# @param options [Hash] LivingRoom's attributes.
|
36
|
+
# @return [BookingSync::API::Resource] Newly created living_room.
|
37
|
+
def create_living_room(rental, options = {})
|
38
|
+
post("rentals/#{rental}/living_rooms", living_rooms: [options]).pop
|
39
|
+
end
|
40
|
+
|
41
|
+
# Edit a living_room
|
42
|
+
#
|
43
|
+
# @param living_room [BookingSync::API::Resource|Integer] LivingRoom or ID of
|
44
|
+
# the living_room to be updated.
|
45
|
+
# @param options [Hash] LivingRoom attributes to be updated.
|
46
|
+
# @return [BookingSync::API::Resource] Updated living_room on success,
|
47
|
+
# exception is raised otherwise.
|
48
|
+
# @example
|
49
|
+
# living_room = @api.living_rooms.first
|
50
|
+
# @api.edit_living_room(living_room, { bunk_beds_count: 3 })
|
51
|
+
def edit_living_room(living_room, options = {})
|
52
|
+
put("living_rooms/#{living_room}", living_rooms: [options]).pop
|
53
|
+
end
|
54
|
+
|
55
|
+
# Cancel a living_room
|
56
|
+
#
|
57
|
+
# @param living_room [BookingSync::API::Resource|Integer] LivingRoom or ID
|
58
|
+
# of the living_room to be canceled.
|
59
|
+
# @return [NilClass] Returns nil on success.
|
60
|
+
def cancel_living_room(living_room)
|
61
|
+
delete "living_rooms/#{living_room}"
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
@@ -1,4 +1,4 @@
|
|
1
|
-
require
|
1
|
+
require "forwardable"
|
2
2
|
|
3
3
|
module BookingSync::API::Middleware
|
4
4
|
# Provides logger for request and responses made by API Client.
|
@@ -20,13 +20,13 @@ module BookingSync::API::Middleware
|
|
20
20
|
|
21
21
|
def call(env)
|
22
22
|
info "Request #{env.method.upcase} #{env.url.to_s}"
|
23
|
-
debug(
|
24
|
-
debug(
|
23
|
+
debug("Request headers") { dump_headers env.request_headers }
|
24
|
+
debug("Request body") { dump_body env.body }
|
25
25
|
@app.call(env).tap do |response|
|
26
26
|
info "Response X-Request-Id: #{env.response_headers['X-Request-Id']} #{env.method.upcase} #{env.url.to_s}"
|
27
|
-
debug(
|
28
|
-
debug(
|
29
|
-
debug(
|
27
|
+
debug("Response headers") { dump_headers response.env.response_headers }
|
28
|
+
debug("Response status") { response.env.status }
|
29
|
+
debug("Response body") { dump_body response.env.body }
|
30
30
|
end
|
31
31
|
end
|
32
32
|
|
@@ -69,7 +69,7 @@ module BookingSync::API
|
|
69
69
|
|
70
70
|
def extract_resources(ids, association_key, uri_association_key, *args)
|
71
71
|
return [] if ids.empty?
|
72
|
-
options = {uri: {uri_association_key => ids}}
|
72
|
+
options = { uri: { uri_association_key => ids } }
|
73
73
|
options.merge!(query: args.first) if args.first.is_a?(Hash)
|
74
74
|
@_rels[association_key].get(options).resources
|
75
75
|
end
|
@@ -76,9 +76,9 @@ module BookingSync::API
|
|
76
76
|
end
|
77
77
|
|
78
78
|
def process_rels
|
79
|
-
links = (
|
79
|
+
links = (@headers["Link"] || "").split(", ").map do |link|
|
80
80
|
href, name = link.match(/<(.*?)>; rel="(\w+)"/).captures
|
81
|
-
[name.to_sym, Relation.from_link(@client, name, :
|
81
|
+
[name.to_sym, Relation.from_link(@client, name, href: href)]
|
82
82
|
end
|
83
83
|
Hash[*links.flatten]
|
84
84
|
end
|
@@ -1,6 +1,6 @@
|
|
1
|
-
require
|
2
|
-
require
|
3
|
-
require
|
1
|
+
require "date"
|
2
|
+
require "time"
|
3
|
+
require "json"
|
4
4
|
|
5
5
|
module BookingSync::API
|
6
6
|
class Serializer
|
@@ -22,7 +22,7 @@ module BookingSync::API
|
|
22
22
|
@dump.call(encode_object(data))
|
23
23
|
end
|
24
24
|
|
25
|
-
|
25
|
+
alias_method :dump, :encode
|
26
26
|
|
27
27
|
# Public: Decodes a String into an Object (usually a Hash or Array of
|
28
28
|
# Hashes).
|
@@ -35,7 +35,7 @@ module BookingSync::API
|
|
35
35
|
decode_object(@load.call(data))
|
36
36
|
end
|
37
37
|
|
38
|
-
|
38
|
+
alias_method :load, :decode
|
39
39
|
|
40
40
|
def encode_object(data)
|
41
41
|
case data
|
@@ -1,7 +1,6 @@
|
|
1
1
|
require "spec_helper"
|
2
2
|
|
3
3
|
describe BookingSync::API::Client::Bathrooms do
|
4
|
-
|
5
4
|
let(:client) { BookingSync::API::Client.new(test_access_token) }
|
6
5
|
|
7
6
|
describe ".bathrooms", :vcr do
|
@@ -19,10 +18,12 @@ describe BookingSync::API::Client::Bathrooms do
|
|
19
18
|
end
|
20
19
|
|
21
20
|
describe ".create_bathroom", :vcr do
|
22
|
-
let(:attributes)
|
23
|
-
|
24
|
-
|
25
|
-
|
21
|
+
let(:attributes) do
|
22
|
+
{
|
23
|
+
name_en: "New bathroom",
|
24
|
+
wc: true
|
25
|
+
}
|
26
|
+
end
|
26
27
|
let(:rental) { BookingSync::API::Resource.new(client, id: 5116) }
|
27
28
|
|
28
29
|
it "creates a new bathroom" do
|
@@ -32,9 +33,9 @@ describe BookingSync::API::Client::Bathrooms do
|
|
32
33
|
end
|
33
34
|
|
34
35
|
it "returns newly created bathroom" do
|
35
|
-
VCR.use_cassette(
|
36
|
+
VCR.use_cassette("BookingSync_API_Client_Bathrooms/_create_bathroom/creates_a_new_bathroom") do
|
36
37
|
bathroom = client.create_bathroom(rental, attributes)
|
37
|
-
expect(bathroom.name).to eql(
|
38
|
+
expect(bathroom.name).to eql(en: "New bathroom")
|
38
39
|
expect(bathroom.wc).to eql(attributes[:wc])
|
39
40
|
end
|
40
41
|
end
|
@@ -52,10 +53,10 @@ describe BookingSync::API::Client::Bathrooms do
|
|
52
53
|
end
|
53
54
|
|
54
55
|
it "returns updated bathroom" do
|
55
|
-
VCR.use_cassette(
|
56
|
+
VCR.use_cassette("BookingSync_API_Client_Bathrooms/_edit_bathroom/updates_given_bathroom_by_ID") do
|
56
57
|
bathroom = client.edit_bathroom(729, attributes)
|
57
58
|
expect(bathroom).to be_kind_of(BookingSync::API::Resource)
|
58
|
-
expect(bathroom.name).to eq(
|
59
|
+
expect(bathroom.name).to eq(en: "Updated bathroom", fr: "Salle de bain 1")
|
59
60
|
end
|
60
61
|
end
|
61
62
|
end
|
@@ -1,7 +1,6 @@
|
|
1
1
|
require "spec_helper"
|
2
2
|
|
3
3
|
describe BookingSync::API::Client::Bedrooms do
|
4
|
-
|
5
4
|
let(:client) { BookingSync::API::Client.new(test_access_token) }
|
6
5
|
|
7
6
|
describe ".bedrooms", :vcr do
|
@@ -19,10 +18,12 @@ describe BookingSync::API::Client::Bedrooms do
|
|
19
18
|
end
|
20
19
|
|
21
20
|
describe ".create_bedroom", :vcr do
|
22
|
-
let(:attributes)
|
23
|
-
|
24
|
-
|
25
|
-
|
21
|
+
let(:attributes) do
|
22
|
+
{
|
23
|
+
name_en: "New bedroom",
|
24
|
+
sofa_beds_count: 2
|
25
|
+
}
|
26
|
+
end
|
26
27
|
let(:rental) { BookingSync::API::Resource.new(client, id: 5116) }
|
27
28
|
|
28
29
|
it "creates a new bedroom" do
|
@@ -32,9 +33,9 @@ describe BookingSync::API::Client::Bedrooms do
|
|
32
33
|
end
|
33
34
|
|
34
35
|
it "returns newly created bedroom" do
|
35
|
-
VCR.use_cassette(
|
36
|
+
VCR.use_cassette("BookingSync_API_Client_Bedrooms/_create_bedroom/creates_a_new_bedroom") do
|
36
37
|
bedroom = client.create_bedroom(rental, attributes)
|
37
|
-
expect(bedroom.name).to eql(
|
38
|
+
expect(bedroom.name).to eql(en: "New bedroom")
|
38
39
|
expect(bedroom.sofa_beds_count).to eql(attributes[:sofa_beds_count])
|
39
40
|
end
|
40
41
|
end
|
@@ -52,10 +53,10 @@ describe BookingSync::API::Client::Bedrooms do
|
|
52
53
|
end
|
53
54
|
|
54
55
|
it "returns updated bedroom" do
|
55
|
-
VCR.use_cassette(
|
56
|
+
VCR.use_cassette("BookingSync_API_Client_Bedrooms/_edit_bedroom/updates_given_bedroom_by_ID") do
|
56
57
|
bedroom = client.edit_bedroom(944, attributes)
|
57
58
|
expect(bedroom).to be_kind_of(BookingSync::API::Resource)
|
58
|
-
expect(bedroom.name).to eq(
|
59
|
+
expect(bedroom.name).to eq(en: "Updated bedroom", fr: "Chambre 1")
|
59
60
|
end
|
60
61
|
end
|
61
62
|
end
|
@@ -44,26 +44,26 @@ describe BookingSync::API::Client::Bookings do
|
|
44
44
|
end
|
45
45
|
|
46
46
|
it "returns a single canceled booking" do
|
47
|
-
booking = client.booking(114760,
|
47
|
+
booking = client.booking(114760, include_canceled: true)
|
48
48
|
expect(booking.status).to eq "Canceled"
|
49
49
|
end
|
50
50
|
end
|
51
51
|
|
52
52
|
describe ".create_booking", :vcr do
|
53
53
|
let(:attributes) {
|
54
|
-
{start_at:
|
55
|
-
booked: true}
|
54
|
+
{ start_at: "2014-01-03", end_at: "2014-01-04",
|
55
|
+
booked: true }
|
56
56
|
}
|
57
57
|
let(:rental) { BookingSync::API::Resource.new(client, id: 20) }
|
58
58
|
|
59
59
|
it "creates a booking" do
|
60
60
|
client.create_booking(rental, attributes)
|
61
61
|
assert_requested :post, bs_url("rentals/20/bookings"),
|
62
|
-
body: {bookings: [attributes]}.to_json
|
62
|
+
body: { bookings: [attributes] }.to_json
|
63
63
|
end
|
64
64
|
|
65
65
|
it "returns newly created booking" do
|
66
|
-
VCR.use_cassette(
|
66
|
+
VCR.use_cassette("BookingSync_API_Client_Bookings/_create_booking/creates_a_booking") do
|
67
67
|
booking = client.create_booking(rental, attributes)
|
68
68
|
expect(booking.account_id).to eql(1)
|
69
69
|
expect(booking.rental_id).to eql(20)
|
@@ -73,25 +73,25 @@ describe BookingSync::API::Client::Bookings do
|
|
73
73
|
|
74
74
|
describe ".edit_booking", :vcr do
|
75
75
|
it "updates given booking by ID" do
|
76
|
-
client.edit_booking(50,
|
76
|
+
client.edit_booking(50, end_at: "2019-03-25 21:45:00 UTC")
|
77
77
|
assert_requested :put, bs_url("bookings/50"),
|
78
|
-
body: {bookings: [{end_at: "2019-03-25 21:45:00 UTC"}]}.to_json
|
78
|
+
body: { bookings: [{ end_at: "2019-03-25 21:45:00 UTC" }] }.to_json
|
79
79
|
end
|
80
80
|
|
81
81
|
it "returns updated booking" do
|
82
|
-
VCR.use_cassette(
|
83
|
-
booking = client.edit_booking(50,
|
82
|
+
VCR.use_cassette("BookingSync_API_Client_Bookings/_edit_booking/updates_given_booking_by_ID") do
|
83
|
+
booking = client.edit_booking(50, end_at: "2019-03-25 21:45:00 UTC")
|
84
84
|
expect(booking).to be_kind_of(BookingSync::API::Resource)
|
85
85
|
expect(booking.end_at).to eq(Time.parse("2019-03-25 21:45:00 UTC"))
|
86
86
|
end
|
87
87
|
end
|
88
88
|
|
89
89
|
it "updates given booking by Resource object" do
|
90
|
-
VCR.use_cassette(
|
91
|
-
resource = BookingSync::API::Resource.new(nil,
|
92
|
-
client.edit_booking(resource,
|
90
|
+
VCR.use_cassette("BookingSync_API_Client_Bookings/_edit_booking/updates_given_booking_by_ID") do
|
91
|
+
resource = BookingSync::API::Resource.new(nil, id: 50)
|
92
|
+
client.edit_booking(resource, end_at: "2019-03-25 21:45:00 UTC")
|
93
93
|
assert_requested :put, bs_url("bookings/50"),
|
94
|
-
body: {bookings: [{end_at: "2019-03-25 21:45:00 UTC"}]}.to_json
|
94
|
+
body: { bookings: [{ end_at: "2019-03-25 21:45:00 UTC" }] }.to_json
|
95
95
|
end
|
96
96
|
end
|
97
97
|
end
|