module RestAPIBuilder::Request::ResponseHandler
Public Instance Methods
handle_json_response(**options, &block)
click to toggle source
# File lib/rest_api_builder/request/response_handler.rb, line 8 def handle_json_response(**options, &block) result = handle_response(**options, &block) result.merge(body: parse_json(result[:body])) end
handle_response(logger: nil, &block)
click to toggle source
# 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() { || ... }
click to toggle source
# 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:)
click to toggle source
# 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)
click to toggle source
# 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:)
click to toggle source
# 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