class RequestProxy

Public Class Methods

call(request, url, data, cookies) click to toggle source
# File lib/request_proxy.rb, line 4
def self.call(request, url, data, cookies)
  proxy = new(request, url, data, cookies)
  proxy.call
end
new(request, url, data, cookies) click to toggle source
# File lib/request_proxy.rb, line 9
def initialize(request, url, data, cookies)
  @method  = request.method
  @url     = url
  @data    = data
  @cookies = cookies
  @headers = request.headers
end

Public Instance Methods

call() click to toggle source
# File lib/request_proxy.rb, line 17
def call
  options = {
    method:  @method,
    url:     url,
    cookies: @cookies,
    headers: headers_for_booking_app,
  }
  options[:payload] = @data unless http_get?

  RestClient::Request.execute(options) do |response, _request, _result, &_block|
    WrappedResponse.new(response)
  end
end

Private Instance Methods

headers_for_booking_app() click to toggle source
# File lib/request_proxy.rb, line 43
def headers_for_booking_app
  {
    accept:           @headers['Accept'],
    referer:          @headers['HTTP_REFERER'],
    'X-CSRF-Token' => @headers['X-CSRF-Token']
  }
end
http_get?() click to toggle source
# File lib/request_proxy.rb, line 33
def http_get?
  @method == :get
end
url() click to toggle source
# File lib/request_proxy.rb, line 37
def url
  url = @url
  url += "?#{@data.to_query}" if http_get?
  url
end