Sha256: d649afe0547430bc4fc19ab837f098e59c5ddeb93e4b09a6e0af181ac5418cbd
Contents?: true
Size: 1.11 KB
Versions: 3
Compression:
Stored size: 1.11 KB
Contents
module Monri class ApiHttpResponse # @return [Hash] attr_reader :body # @return [String] attr_reader :response_body # @return [Integer] attr_reader :code # @return [Hash] attr_reader :headers # @return [Exception] attr_reader :exception # @param [Net::HTTPResponse] response # @return [Monri::ApiHttpResponse] def from_net(response) @code = response.code.to_i @headers = response.each_header.to_h @response_body = response.body @body = begin JSON.parse(response.body, symbolize_names: true) rescue @exception = create_exception('JSON parsing failed') nil end unless success? @exception = create_exception("Request failed, got status code=#{code}") end self end def success? exception == nil && code >= 200 && code < 300 end def failed? exception != nil end private # @param [String] message def create_exception(message) Monri::Errors::HttpRequestError.new(message, code: @code, body: @response_body, headers: @headers) end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
monri-0.3.0 | lib/monri/api_http_response.rb |
monri-0.2.0 | lib/monri/api_http_response.rb |
monri-0.1.0 | lib/monri/api_http_response.rb |