Class: SilencerShop::Response

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

Instance Method Summary collapse

Constructor Details

#initialize(response) ⇒ Response

Returns a new instance of Response.



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/silencer_shop/response.rb', line 4

def initialize(response)
  @response = response

  case @response
  when Net::HTTPUnauthorized
    SilencerShop::Error::NotAuthorized.new(@response.body)
  when Net::HTTPNotFound
    SilencerShop::Error::NotFound.new(@response.body)
  when Net::HTTPNoContent
    SilencerShop::Error::NoContent.new(@response.body)
  when Net::HTTPOK, Net::HTTPSuccess
    _data = (JSON.parse(@response.body) if @response.body.present?)

    @data = case
    when _data.is_a?(Hash)
      _data.deep_symbolize_keys
    when _data.is_a?(Array)
      _data.map(&:deep_symbolize_keys)
    end
  else
    raise SilencerShop::Error::RequestError.new(@response.body)
  end
end

Instance Method Details

#[](key) ⇒ Object



28
29
30
# File 'lib/silencer_shop/response.rb', line 28

def [](key)
  @data&.[](key)
end

#bodyObject



32
33
34
# File 'lib/silencer_shop/response.rb', line 32

def body
  @data
end

#fetch(key) ⇒ Object



36
37
38
# File 'lib/silencer_shop/response.rb', line 36

def fetch(key)
  @data.fetch(key)
end

#success?Boolean

Returns:

  • (Boolean)


40
41
42
# File 'lib/silencer_shop/response.rb', line 40

def success?
  !!self[:success] && self[:errors].empty?
end