Module: RestAPIBuilder::Request::ResponseHandler
- Defined in:
- lib/rest_api_builder/request/response_handler.rb
Class Method Summary collapse
- .handle_json_response(**options, &block) ⇒ Object
- .handle_response(logger: nil, &block) ⇒ Object
- .handle_response_error ⇒ Object
- .maybe_log_result(result, logger:) ⇒ Object
- .parse_json(json) ⇒ Object
- .parse_response(raw_response:, success:) ⇒ Object
Class Method Details
.handle_json_response(**options, &block) ⇒ Object
8 9 10 11 |
# File 'lib/rest_api_builder/request/response_handler.rb', line 8 def handle_json_response(**, &block) result = handle_response(**, &block) result.merge(body: parse_json(result[:body])) end |
.handle_response(logger: nil, &block) ⇒ Object
13 14 15 16 17 |
# File 'lib/rest_api_builder/request/response_handler.rb', line 13 def handle_response(logger: nil, &block) result = parse_response(**handle_response_error(&block)) maybe_log_result(result, logger: logger) result end |
.handle_response_error ⇒ Object
19 20 21 22 23 24 25 26 |
# File 'lib/rest_api_builder/request/response_handler.rb', line 19 def handle_response_error response = yield { raw_response: response, success: true } rescue RestClient::RequestFailed => e raise e unless e.response { raw_response: e.response, success: false } end |
.maybe_log_result(result, logger:) ⇒ Object
37 38 39 |
# File 'lib/rest_api_builder/request/response_handler.rb', line 37 def maybe_log_result(result, logger:) logger && logger << "# => Response: #{result}\n" end |
.parse_json(json) ⇒ Object
41 42 43 44 45 |
# File 'lib/rest_api_builder/request/response_handler.rb', line 41 def parse_json(json) JSON.parse(json) rescue JSON::ParserError json end |
.parse_response(raw_response:, success:) ⇒ Object
28 29 30 31 32 33 34 35 |
# File 'lib/rest_api_builder/request/response_handler.rb', line 28 def parse_response(raw_response:, success:) { success: success, status: raw_response.code, body: raw_response.body, headers: raw_response.headers } end |