Sha256: bd4e4d7de4d51a2fbaebbee9c8ce96343e28bcfc3a59df6a543d62b2374067ec

Contents?: true

Size: 1.07 KB

Versions: 1

Compression:

Stored size: 1.07 KB

Contents

module G5Updatable
  class Fetcher
    extend ::G5AuthenticationClient::AuthTokenHelper

    def self.get_with_token(url)
      url = self.url_for_env(url)
      response = do_with_username_pw_access_token do |access_token|
        query = { access_token: access_token, updatable_version: G5Updatable::VERSION }
        query[:updatable_referer] = ENV['HEROKU_APP_NAME'] unless ENV['HEROKU_APP_NAME'].blank?
        ::HTTParty.get(url, { query:   query,
                              headers: { 'Content-Type' => 'application/json',
                                         'Accept'       => 'application/json' } })
      end

      case response.code.to_i
        when 200
          JSON.parse(response.body)
        when 404
          Rails.logger.warn "Couldn't find record at URL '#{url}'"
          return {}
        else
          raise "I got an unexpected response code '#{response.code}'"
      end
    end

    def self.url_for_env(url)
      return url.gsub(/(http|https):\/\/([a-zA-Z0-9-]*\.)+[a-zA-Z0-9]+/, ENV['HUB_URL']) if ENV['HUB_URL'].present?
      url
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
g5_updatable-1.0.2.pre.1 app/lib/g5_updatable/fetcher.rb