Class: HttpRequester

Inherits:
Object
  • Object
show all
Defined in:
lib/http_requester.rb

Overview

This class ease the usage of Net::HTTP and prevent code duplication

Direct Known Subclasses

WattSenseApi::V1::Client

Instance Method Summary collapse

Constructor Details

#initialize(base_url, headers_callback: ->(_request) {}, auth_callback: ->(_request) {}) ⇒ HttpRequester

use heritage on this class and call the super with the your base_url parameter and the callbacks you need.

Parameters:

  • base_url (String)

    The basi



15
16
17
18
19
# File 'lib/http_requester.rb', line 15

def initialize(base_url, headers_callback: ->(_request) {}, auth_callback: ->(_request) {})
  @base_url = base_url
  @headers_callback = headers_callback
  @auth_callback = auth_callback
end

Instance Method Details

#get(path, query_parameters = nil, &before_req_callback) ⇒ Object

HTTP GET method

TODO: document



24
25
26
27
# File 'lib/http_requester.rb', line 24

def get(path, query_parameters = nil, &before_req_callback)
  uri = uri_from_path_and_query_parameters(path, query_parameters)
  do_request(::Net::HTTP::Get.new(uri), before_req_callback)
end

#post(path, payload, &before_req_callback) ⇒ Object

HTTP POST method

TODO: document



32
33
34
35
36
# File 'lib/http_requester.rb', line 32

def post(path, payload, &before_req_callback)
  req = ::Net::HTTP::Post.new(uri_from_path_and_query_parameters(path))
  req.body = payload
  do_request(req, before_req_callback)
end

#put(path, payload, &before_req_callback) ⇒ Object

HTTP POST method

TODO: document



41
42
43
44
45
# File 'lib/http_requester.rb', line 41

def put(path, payload, &before_req_callback)
  req = ::Net::HTTP::Put.new(uri_from_path_and_query_parameters(path))
  req.body = payload
  do_request(req, before_req_callback)
end