class ApiTransformer::BackendRequest
Process request blocks
Attributes
form_params[RW]
header_params[RW]
json_params[RW]
method[RW]
name[R]
path[RW]
query_params[RW]
Public Class Methods
new(name, base_url, frontend_headers)
click to toggle source
# File lib/api_transformer/backend_request.rb, line 10 def initialize(name, base_url, frontend_headers) @name = name @base_url = base_url @frontend_headers = frontend_headers @query_params = {} @form_params = {} @json_params = {} @cookie_params = {} @header_params = {} end
Public Instance Methods
send()
click to toggle source
# File lib/api_transformer/backend_request.rb, line 22 def send url = @base_url + @path EM::HttpRequest.new(url).send( "a#{@method}", query: @query_params, body: body, head: headers ) end
Private Instance Methods
body()
click to toggle source
# File lib/api_transformer/backend_request.rb, line 35 def body case [@form_params.any?, @json_params.any?] when [true, true] fail RequestError, "A request cannot have both json and form parameters" when [true, false] @form_params when [false, true] @json_params.to_json when [false, false] nil end end
content_type()
click to toggle source
# File lib/api_transformer/backend_request.rb, line 64 def content_type if @json_params.any? { "Content-Type" => "application/json" } elsif @form_params.any? { "Content-Type" => "application/x-www-form-urlencoded" } else {} end end
headers()
click to toggle source
# File lib/api_transformer/backend_request.rb, line 48 def headers ret = [ stripped_frontend_headers, @header_params, content_type, cookies ].reduce(&:merge) ret.delete("Host") ret end
stripped_frontend_headers()
click to toggle source
# File lib/api_transformer/backend_request.rb, line 60 def stripped_frontend_headers @frontend_headers.reject { |key, _| key == "Content-Length" } end