Method: ApiTester::Endpoint#call

Defined in:
lib/api-tester/definition/endpoint.rb

#call(base_url:, method:, query: '', payload: {}, headers: {}) ⇒ Object



62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
# File 'lib/api-tester/definition/endpoint.rb', line 62

def call(base_url:, method:, query: '', payload: {}, headers: {})
  test_helper.before
  call_url = query ? "#{base_url}#{url}?#{query}" : "#{base_url}#{url}"
  begin
    response = nil
    time = Benchmark.measure {
      response = RestClient::Request.execute(method: method.verb,
                                             url: call_url,
                                             payload: payload.to_json,
                                             headers: headers)
    }
    if time.real > longest_time[:time]
      longest_time[:time] = time.real
      longest_time[:payload] = payload.to_json
      longest_time[:verb] = method.verb
    end
  rescue RestClient::ExceptionWithResponse => e
    response = e.response
  end
  test_helper.after
  response
end