lib/expedia/api.rb in expedia-0.0.1 vs lib/expedia/api.rb in expedia-0.0.2
- old
+ new
@@ -1,69 +1,75 @@
module Expedia
- class Api
+ # All method naming is done in correspondence with Expedia services and ruby conventions
+ class Api
- # All method naming is done in correspondence with Expedia services and ruby conventions
- # see http://developer.ean.com/docs/read/hotels#.UMf_hiNDt0w
- def get_list(args)
- services('/ean-services/rs/hotel/v3/list', args)
- end
+ # @param args [Hash] All the params required for 'get_list' call
+ # @return [Expedia::HTTPService::Response] on success. A response object representing the results from Expedia
+ # @return [Expedia::APIError] on Error.
+ # @note A POST request is made instead of GET if 'numberOfResults' > 200
+ def get_list(args)
+ no_of_results = 'numberOfResults'
+ method = (args[no_of_results.to_sym].to_i > 200 || args[no_of_results].to_i > 200) ||
+ args[no_of_results.downcase.to_sym].to_i > 200 || args[no_of_results.downcase].to_i > 200 ? :post : :get
+ services('/ean-services/rs/hotel/v3/list', args, method)
+ end
- def geo_search(args)
- services('/ean-services/rs/hotel/v3/geoSearch', args)
- end
+ def geo_search(args)
+ services('/ean-services/rs/hotel/v3/geoSearch', args)
+ end
- def get_availability(args)
- services('/ean-services/rs/hotel/v3/avail', args)
- end
+ def get_availability(args)
+ services('/ean-services/rs/hotel/v3/avail', args)
+ end
- def get_room_images(args)
- services('/ean-services/rs/hotel/v3/roomImages', args)
- end
+ def get_room_images(args)
+ services('/ean-services/rs/hotel/v3/roomImages', args)
+ end
- def get_information(args)
- services('/ean-services/rs/hotel/v3/info', args)
- end
+ def get_information(args)
+ services('/ean-services/rs/hotel/v3/info', args)
+ end
- def get_rules(args)
- services('/ean-services/rs/hotel/v3/rules', args)
- end
+ def get_rules(args)
+ services('/ean-services/rs/hotel/v3/rules', args)
+ end
- def get_itinerary(args)
- services('/ean-services/rs/hotel/v3/itin', args)
- end
+ def get_itinerary(args)
+ services('/ean-services/rs/hotel/v3/itin', args)
+ end
- def get_alternate_properties(args)
- services('/ean-services/rs/hotel/v3/altProps', args)
- end
+ def get_alternate_properties(args)
+ services('/ean-services/rs/hotel/v3/altProps', args)
+ end
- def get_reservation(args)
- HTTPService.make_request('/ean-services/rs/hotel/v3/res', args, :post, { :reservation_api => true, :use_ssl => true })
- end
+ def get_reservation(args)
+ HTTPService.make_request('/ean-services/rs/hotel/v3/res', args, :post, { :reservation_api => true, :use_ssl => true })
+ end
- def get_payment_info(args)
- services('/ean-services/rs/hotel/v3/paymentInfo', args)
- end
+ def get_payment_info(args)
+ services('/ean-services/rs/hotel/v3/paymentInfo', args)
+ end
- def get_cancel(args)
- services('/ean-services/rs/hotel/v3/cancel', args)
- end
+ def get_cancel(args)
+ services('/ean-services/rs/hotel/v3/cancel', args)
+ end
- def get_ping(args)
- services('/ean-services/rs/hotel/v3/ping', args)
- end
+ def get_ping(args)
+ services('/ean-services/rs/hotel/v3/ping', args)
+ end
- def get_static_reservation(args)
- get_reservation(args.merge!({:firstName => "Test Booking", :lastName => "Test Booking", :creditCardType => "CA",
- :creditCardNumber => 5401999999999999, :creditCardIdentifier => 123,
- :creditCardExpirationMonth => 11, :creditCardExpirationYear => Time.now.year + 2,
- :address1 => 'travelnow' }))
- end
+ def get_static_reservation(args)
+ get_reservation(args.merge!({:firstName => "Test Booking", :lastName => "Test Booking", :creditCardType => "CA",
+ :creditCardNumber => 5401999999999999, :creditCardIdentifier => 123,
+ :creditCardExpirationMonth => 11, :creditCardExpirationYear => Time.now.year + 2,
+ :address1 => 'travelnow' }))
+ end
- private
+ private
- def services(path, args)
- HTTPService.make_request(path, args, :get)
- end
+ def services(path, args, method=:get)
+ HTTPService.make_request(path, args, method)
+ end
- end
-end
\ No newline at end of file
+ end
+end