module BetfairApiNgRails::Api::ConnectionExt::SsoidRefreshing

Public Class Methods

included(base) click to toggle source
# File lib/betfair_api_ng_rails/api/connection_ext/ssoid_refreshing.rb, line 10
        def self.included(base)
          base.send :class_eval,  <<-CODE
            def request_with_ssoid_refreshing(method, params = {})
              res = nil
              begin
                res = request_without_ssoid_refreshing(method, params)
              rescue BetfairApiNgRails::APINGException => e
                raise e unless is_ssoid_problem?(e)
                try_request method, params
              end
              res
            end
            alias_method :request_without_ssoid_refreshing, :request
            alias_method :request, :request_with_ssoid_refreshing
          CODE
        end

Private Instance Methods

is_ssoid_problem?(e) click to toggle source
# File lib/betfair_api_ng_rails/api/connection_ext/ssoid_refreshing.rb, line 29
def is_ssoid_problem?(e)
  e.info[:info]["code"].to_i == -32099
end
try_request(method, params) click to toggle source
# File lib/betfair_api_ng_rails/api/connection_ext/ssoid_refreshing.rb, line 33
def try_request(method, params)
  expire_provider
  request_without_ssoid_refreshing(method, params)
end