Sha256: 91c601d87d07d919a4251e9d50c7872d7a7008c6485e513d6417edf4b36b9f38
Contents?: true
Size: 1.79 KB
Versions: 2
Compression:
Stored size: 1.79 KB
Contents
# frozen_string_literal: true require 'faraday' require 'faraday_throttler' module MetalArchives ## # HTTP request client # class HTTPClient # :nodoc: class << self ## # Retrieve a HTTP resource # # [Raises] # - rdoc-ref:MetalArchives::Errors::InvalidIDError when receiving a status code == 404n # - rdoc-ref:MetalArchives::Errors::APIError when receiving a status code >= 400 (except 404) # def get(*params) response = client.get(*params) raise Errors::InvalidIDError, response.status if response.status == 404 raise Errors::APIError, response.status if response.status >= 400 response rescue Faraday::Error::ClientError => e MetalArchives.config.logger.error e.response raise Errors::APIError, e end private ## # Retrieve a HTTP client # # def client raise Errors::InvalidConfigurationError, 'Not configured yet' unless MetalArchives.config @faraday ||= Faraday.new do |f| f.request :url_encoded # form-encode POST params f.response :logger, MetalArchives.config.logger f.use MetalArchives::Middleware::Headers f.use MetalArchives::Middleware::CacheCheck f.use MetalArchives::Middleware::RewriteEndpoint f.use MetalArchives::Middleware::Encoding MetalArchives.config.middleware.each { |m| f.use m } if MetalArchives.config.middleware f.use :throttler, :rate => MetalArchives.config.request_rate, :wait => MetalArchives.config.request_timeout, :logger => MetalArchives.config.logger f.adapter Faraday.default_adapter end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
metal_archives-2.2.0 | lib/metal_archives/http_client.rb |
metal_archives-2.1.1 | lib/metal_archives/http_client.rb |