Module: WrAPI::Request
- Included in:
- API
- Defined in:
- lib/wrapi/entity.rb,
lib/wrapi/request.rb
Overview
Defines HTTP request methods
Defined Under Namespace
Classes: Entity
Constant Summary collapse
- CONTENT_TYPE_HDR =
'Content-Type'.freeze
Instance Method Summary collapse
-
#delete(path, options = {}, raw = false) ⇒ Entity, String
Perform an HTTP DELETE request.
-
#get(path, options = {}, raw = false) ⇒ Entity, String
Perform an HTTP GET request and return entity in case format is :json.
-
#get_paged(path, options = {}, request_labda = nil) ⇒ Array<Entity>?
Perform an HTTP GET request for paged data sets response.
-
#is_json? ⇒ Boolean
Checks if the response format is JSON.
-
#post(path, options = {}, raw = true) ⇒ Entity, String
Perform an HTTP POST request.
-
#put(path, options = {}, raw = true) ⇒ Entity, String
Perform an HTTP PUT request.
Instance Method Details
#delete(path, options = {}, raw = false) ⇒ Entity, String
Perform an HTTP DELETE request
87 88 89 90 91 92 |
# File 'lib/wrapi/request.rb', line 87 def delete(path, = {}, raw = false) response = request(:delete, path, ) do |request| yield(request) if block_given? end entity_response(response, raw) end |
#get(path, options = {}, raw = false) ⇒ Entity, String
Perform an HTTP GET request and return entity in case format is :json
17 18 19 20 21 22 23 |
# File 'lib/wrapi/request.rb', line 17 def get(path, = {}, raw = false) response = request(:get, path, ) do |request| # inject headers... yield(request) if block_given? end entity_response(response, raw) end |
#get_paged(path, options = {}, request_labda = nil) ⇒ Array<Entity>?
Perform an HTTP GET request for paged data sets response
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/wrapi/request.rb', line 31 def get_paged(path, = {}, request_labda = nil) if is_json? result = [] pager = create_pager while pager.more_pages? response = request(:get, path, .merge(pager.)) do |req| # inject headers... request_labda&.call(req) end handle_data(response.body, pager) do |d| if block_given? yield(d) else result = add_data(result, d) end end pager.next_page!(response.body) end result unless block_given? else raise ArgumentError, "Pages requests should be json formatted (given format '#{format}')" end end |
#is_json? ⇒ Boolean
Checks if the response format is JSON
97 98 99 |
# File 'lib/wrapi/request.rb', line 97 def is_json? 'json'.eql?(format&.to_s) end |
#post(path, options = {}, raw = true) ⇒ Entity, String
Perform an HTTP POST request
61 62 63 64 65 66 |
# File 'lib/wrapi/request.rb', line 61 def post(path, = {}, raw = true) response = request(:post, path, ) do |request| yield(request) if block_given? end entity_response(response, raw) end |
#put(path, options = {}, raw = true) ⇒ Entity, String
Perform an HTTP PUT request
74 75 76 77 78 79 |
# File 'lib/wrapi/request.rb', line 74 def put(path, = {}, raw = true) response = request(:put, path, ) do |request| yield(request) if block_given? end entity_response(response, raw) end |