Sha256: e1bf32fae0144fc93f865c6fded772acc4fedcbef0c287ad82ce61e5acd95ddd
Contents?: true
Size: 1.12 KB
Versions: 4
Compression:
Stored size: 1.12 KB
Contents
# frozen_string_literal: true module Umbra class RequestBuilder class << self def call(env) Typhoeus::Request.new( base_url(env) + url(env), method: method(env), body: body(env), headers: headers(env) ) end private def headers(env) request(env) .fetch('headers') .merge(Umbra::HEADER_KEY => Umbra::HEADER_VALUE) .transform_keys { |key| key.split('_').drop(1).map(&:capitalize).join('-') } end def method(env) request(env).fetch('method').downcase.to_sym end def body(env) request(env).fetch('body') end def url(env) request = request(env) query = request.fetch('query') path = request.fetch('script_name') + request.fetch('path_info') query.empty? ? path : path + "?#{query}" end def base_url(env) request = request(env) scheme = request.fetch('scheme') host = request.fetch('host') "#{scheme}://#{host}" end def request(env) env.fetch('request') end end end end
Version data entries
4 entries across 4 versions & 1 rubygems