suitcase 1.6.0 → 1.6.1
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.
- data/lib/suitcase/hotel/hotel.rb +21 -8
- data/lib/suitcase/hotel/room.rb +2 -1
- data/lib/suitcase/version.rb +1 -1
- data/test/hotels/hotel_test.rb +19 -0
- data/test/keys.rb +7 -7
- metadata +2 -2
data/lib/suitcase/hotel/hotel.rb
CHANGED
@@ -76,7 +76,8 @@ module Suitcase
|
|
76
76
|
:location_description, :short_description,
|
77
77
|
:hotel_in_destination, :proximity_distance,
|
78
78
|
:property_description, :number_of_floors, :number_of_rooms,
|
79
|
-
:deep_link, :tripadvisor_rating
|
79
|
+
:deep_link, :tripadvisor_rating, :general_policies,
|
80
|
+
:checkin_instructions, :general_policies
|
80
81
|
|
81
82
|
# Internal: Initialize a new Hotel.
|
82
83
|
#
|
@@ -211,15 +212,23 @@ module Suitcase
|
|
211
212
|
# Returns a reformatted Hash with the specified accessors.
|
212
213
|
def self.parse_information(parsed)
|
213
214
|
handle_errors(parsed)
|
215
|
+
|
216
|
+
binding.pry
|
214
217
|
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
218
|
+
if parsed["hotelId"]
|
219
|
+
summary = parsed
|
220
|
+
parsed_info = {}
|
221
|
+
else
|
222
|
+
res = parsed["HotelInformationResponse"]
|
223
|
+
summary = res["HotelSummary"]
|
224
|
+
parsed_info = {
|
225
|
+
general_policies: res["HotelDetails"]["hotelPolicy"],
|
226
|
+
checkin_instructions: res["HotelDetails"]["checkInInstructions"]
|
227
|
+
}
|
228
|
+
end
|
220
229
|
proximity_distance = summary["proximityDistance"].to_s
|
221
230
|
proximity_distance << summary["proximityUnit"].to_s
|
222
|
-
parsed_info
|
231
|
+
parsed_info.merge!(
|
223
232
|
id: summary["hotelId"],
|
224
233
|
name: summary["name"],
|
225
234
|
address: summary["address1"],
|
@@ -237,7 +246,7 @@ module Suitcase
|
|
237
246
|
proximity_distance: proximity_distance,
|
238
247
|
tripadvisor_rating: summary["tripAdvisorRating"],
|
239
248
|
deep_link: summary["deepLink"]
|
240
|
-
|
249
|
+
)
|
241
250
|
parsed_info[:amenities] = parsed["HotelInformationResponse"]["PropertyAmenities"]["PropertyAmenity"].map do |x|
|
242
251
|
Amenity.new(id: x["amenityId"], description: x["amenity"])
|
243
252
|
end if parsed["HotelInformationResponse"]
|
@@ -353,6 +362,9 @@ module Suitcase
|
|
353
362
|
|
354
363
|
parsed["HotelRoomAvailabilityResponse"]["HotelRoomResponse"].map do |raw_data|
|
355
364
|
room_data = {}
|
365
|
+
room_data[:non_refundable] = raw_data["nonRefundable"]
|
366
|
+
room_data[:deposit_required] = raw_data["depositRequired"]
|
367
|
+
room_data[:cancellation_policy] = raw_data["cancellationPolicy"]
|
356
368
|
room_data[:rate_code] = raw_data["rateCode"]
|
357
369
|
room_data[:room_type_code] = raw_data["roomTypeCode"]
|
358
370
|
room_data[:room_type_description] = raw_data["roomTypeDescription"]
|
@@ -372,6 +384,7 @@ module Suitcase
|
|
372
384
|
room_data[:bed_types] = [raw_data["BedTypes"]["BedType"]].flatten.map do |x|
|
373
385
|
BedType.new(id: x["@id"], description: x["description"])
|
374
386
|
end if raw_data["BedTypes"] && raw_data["BedTypes"]["BedType"]
|
387
|
+
|
375
388
|
Room.new(room_data)
|
376
389
|
end
|
377
390
|
end
|
data/lib/suitcase/hotel/room.rb
CHANGED
@@ -8,7 +8,8 @@ module Suitcase
|
|
8
8
|
:average_rate, :max_nightly_rate, :currency_code, :value_adds,
|
9
9
|
:room_type_description, :price_breakdown, :total_price,
|
10
10
|
:average_nightly_rate, :promo, :arrival, :departure, :rooms,
|
11
|
-
:bed_types
|
11
|
+
:bed_types, :cancellation_policy, :non_refundable,
|
12
|
+
:deposit_required
|
12
13
|
|
13
14
|
extend Helpers
|
14
15
|
|
data/lib/suitcase/version.rb
CHANGED
data/test/hotels/hotel_test.rb
CHANGED
@@ -90,5 +90,24 @@ describe Suitcase::Hotel do
|
|
90
90
|
it "returns an Array of available Rooms" do
|
91
91
|
@rooms.must_be_kind_of(Array)
|
92
92
|
end
|
93
|
+
|
94
|
+
it "each room must contain a cancellation policy" do
|
95
|
+
@rooms.each do |r|
|
96
|
+
r.cancellation_policy.wont_be_nil
|
97
|
+
end
|
98
|
+
end
|
99
|
+
|
100
|
+
it "each room must contain the non_refundable option" do
|
101
|
+
@rooms.each do |r|
|
102
|
+
r.non_refundable.wont_be_nil
|
103
|
+
end
|
104
|
+
end
|
105
|
+
|
106
|
+
it "each room must contain the deposit_required" do
|
107
|
+
@rooms.each do |r|
|
108
|
+
r.deposit_required.wont_be_nil
|
109
|
+
end
|
110
|
+
binding.pry
|
111
|
+
end
|
93
112
|
end
|
94
113
|
end
|
data/test/keys.rb
CHANGED
@@ -15,21 +15,21 @@ Suitcase.configure do |config|
|
|
15
15
|
end
|
16
16
|
|
17
17
|
module Keys
|
18
|
-
SUITCASE_PAYMENT_OPTION = Suitcase::Hotel::PaymentOption.find(currency_code: "USD")
|
19
|
-
CREDIT_CARD_NUMBER_TESTING = "
|
18
|
+
SUITCASE_PAYMENT_OPTION = Suitcase::Hotel::PaymentOption.find(currency_code: "USD").find { |po| po.name =~ /Master/ }
|
19
|
+
CREDIT_CARD_NUMBER_TESTING = "5401999999999999"
|
20
20
|
CREDIT_CARD_CVV_TESTING = "123"
|
21
|
-
CREDIT_CARD_EXPIRATION_DATE_TESTING = "
|
21
|
+
CREDIT_CARD_EXPIRATION_DATE_TESTING = "2014/03/01"
|
22
22
|
|
23
23
|
VALID_RESERVATION_INFO = {
|
24
24
|
email: "testemail@gmail.com",
|
25
|
-
first_name: "Test",
|
26
|
-
last_name: "
|
25
|
+
first_name: "Test Booking",
|
26
|
+
last_name: "Test Booking",
|
27
27
|
home_phone: "1231231234",
|
28
28
|
payment_option: SUITCASE_PAYMENT_OPTION,
|
29
29
|
credit_card_number: CREDIT_CARD_NUMBER_TESTING,
|
30
|
-
credit_card_verification_code:
|
30
|
+
credit_card_verification_code: CREDIT_CARD_CVV_TESTING,
|
31
31
|
credit_card_expiration_date: CREDIT_CARD_EXPIRATION_DATE_TESTING,
|
32
|
-
address1: "
|
32
|
+
address1: "travelnow",
|
33
33
|
city: "Boston",
|
34
34
|
province: "MA",
|
35
35
|
country: "US",
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: suitcase
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.6.
|
4
|
+
version: 1.6.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-06-
|
12
|
+
date: 2012-06-22 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: minitest
|