Sha256: a1ce9b84f1ae20f666d026900defae0ab97b51ba579dd7c492f5f4bba88f8517

Contents?: true

Size: 613 Bytes

Versions: 5

Compression:

Stored size: 613 Bytes

Contents

module EtCcdClient
  module CommonRestClientWithLogin

    private

    def get_request_with_login(*args)
      login_on_denial do
        get_request(*args)
      end
    end

    def post_request_with_login(*args)
      login_on_denial do
        post_request(*args)
      end
    end

    def login_on_denial
      retried = false
      begin
        yield
      rescue EtCcdClient::Exceptions::Forbidden, EtCcdClient::Exceptions::Unauthorized => e
        raise if retried

        retried = true
        logger.tagged('Re logging in') do
          login
        end
        retry
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
et_ccd_client-0.4.0 lib/et_ccd_client/common_rest_client_with_login.rb
et_ccd_client-0.3.4 lib/et_ccd_client/common_rest_client_with_login.rb
et_ccd_client-0.3.3 lib/et_ccd_client/common_rest_client_with_login.rb
et_ccd_client-0.3.2 lib/et_ccd_client/common_rest_client_with_login.rb
et_ccd_client-0.3.1 lib/et_ccd_client/common_rest_client_with_login.rb