Sha256: 7a361b646463c32308498e5263fc033f63f5f1f511035bd74cbcbf8d229960c2
Contents?: true
Size: 1.07 KB
Versions: 1
Compression:
Stored size: 1.07 KB
Contents
# frozen_string_literal: true module Sbmt module Strangler module Http class Client include Dry::Monads::Result::Mixin def initialize(http_options: nil) @http_options = http_options end def call(url, http_verb, payload: {}, headers: {}) case http_verb.downcase when :get transport.get_request(url, params: payload, headers: prepare_headers(headers)) when :post transport.post_request(url, body: payload, headers: prepare_headers(headers)) when :put transport.put_request(url, body: payload, headers: prepare_headers(headers)) else raise "unsupported http verb - #{http_verb}" end end private attr_reader :http_options def transport @transport ||= Sbmt::Strangler::Http::Transport.new(http_options: http_options) end def prepare_headers(headers) headers&.transform_keys { |key| key.sub("HTTP_", "").tr("_", "-") } end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
sbmt-strangler-0.9.1 | lib/sbmt/strangler/http/client.rb |