Sha256: 468974cdcf075f4ae13453a8e1c7424265a94cb7b5a1e86d22e708f87458c809
Contents?: true
Size: 1.25 KB
Versions: 3
Compression:
Stored size: 1.25 KB
Contents
# frozen_string_literal: true module Umbra class RequestBuilder UMBRA_HEADERS = { Umbra::HEADER_KEY => Umbra::HEADER_VALUE, 'HTTP_CACHE_CONTROL' => 'no-cache, no-store, private, max-age=0' }.freeze 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_HEADERS) .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
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
umbra-rb-0.2.0 | lib/umbra/request_builder.rb |
umbra-rb-0.1.5.pre | lib/umbra/request_builder.rb |
umbra-rb-0.1.4.pre | lib/umbra/request_builder.rb |