Sha256: b920d79dae18bf232fcfe39064d96eed1538545fa0cb7b0de91981066062cf9b
Contents?: true
Size: 1.01 KB
Versions: 4
Compression:
Stored size: 1.01 KB
Contents
# frozen_string_literal: true require "http" require "freefeed/constants" require "freefeed/error" module Freefeed class Request extend Dry::Initializer param :client param :request_method param :path param :options, optional: true, default: -> { {} } def call response = http_client .headers(headers) .public_send(request_method, uri, **request_params) error = Freefeed::Error.for(response) raise(error) if error response end private def uri @uri ||= URI.parse(client.base_url + path).to_s end def request_params options.slice(:json, :form, :params, :body) end def headers { accept: "*/*", user_agent: "#{Freefeed::Client.name}/#{Freefeed::VERSION}" } end def user_agent "#{Freefeed::Client.name}/#{Freefeed::VERSION}" end # TODO: Timeout settinf # TODO: Proxy setting def http_client HTTP.use(logging: { logger: client.logger }) end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
freefeed-0.5.3 | lib/freefeed/request.rb |
freefeed-0.5.2 | lib/freefeed/request.rb |
freefeed-0.5.1 | lib/freefeed/request.rb |
freefeed-0.5.0 | lib/freefeed/request.rb |