class CheckoutRu::Session
Attributes
ticket[R]
Public Class Methods
initiate()
click to toggle source
# File lib/checkout_ru/session.rb, line 7 def initiate ticket = CheckoutRu.get_ticket new(ticket) end
new(ticket)
click to toggle source
# File lib/checkout_ru/session.rb, line 15 def initialize(ticket) @ticket = ticket end
Public Instance Methods
calculation(params = {}, options = {})
click to toggle source
# File lib/checkout_ru/session.rb, line 23 def calculation(params = {}, options = {}) get('calculation', params, options) end
get_place_by_postal_code(params = {}, options = {})
click to toggle source
# File lib/checkout_ru/session.rb, line 35 def get_place_by_postal_code(params = {}, options = {}) get('getPlaceByPostalCode', params, options) end
get_places_by_query(params = {}, options = {})
click to toggle source
# File lib/checkout_ru/session.rb, line 19 def get_places_by_query(params = {}, options = {}) get('getPlacesByQuery', params, options).suggestions end
get_postal_code_by_address(params = {}, options = {})
click to toggle source
# File lib/checkout_ru/session.rb, line 31 def get_postal_code_by_address(params = {}, options = {}) get('getPostalCodeByAddress', params, options).postindex end
get_streets_by_query(params = {}, options = {})
click to toggle source
# File lib/checkout_ru/session.rb, line 27 def get_streets_by_query(params = {}, options = {}) get('getStreetsByQuery', params, options).suggestions end
Private Instance Methods
build_connection()
click to toggle source
# File lib/checkout_ru/session.rb, line 71 def build_connection @connection ||= CheckoutRu.build_connection end
expired_ticket?(parsed_response)
click to toggle source
# File lib/checkout_ru/session.rb, line 75 def expired_ticket?(parsed_response) ExpiredTicketResponse.new(parsed_response).match? end
get(service, params = {}, options = {})
click to toggle source
# File lib/checkout_ru/session.rb, line 40 def get(service, params = {}, options = {}) attempts = options.delete(:attempts) || 2 args = {:params => params.merge(:ticket => @ticket)}.merge(options) args[:connection] ||= build_connection begin parsed_response = CheckoutRu.make_request "/service/checkout/#{service}", args rescue Faraday::Error::ClientError => e parsed_response = e.response if e.respond_to?(:response) && e.response.respond_to?(:[]) raise unless expired_ticket?(parsed_response) end if CheckoutRu.auto_renew_session && attempts > 0 && expired_ticket?(parsed_response) @ticket = CheckoutRu.get_ticket parsed_response = get(service, params, options.merge(attempts: attempts - 1)) end if parsed_response[:error] raise Error.construct(parsed_response) end parsed_response end