Class: LoopsEmail::Result

Inherits:
Object
  • Object
show all
Defined in:
lib/loops_email/result.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(response) ⇒ Result

Returns a new instance of Result.



5
6
7
# File 'lib/loops_email/result.rb', line 5

def initialize(response)
  @response = response
end

Instance Attribute Details

#responseObject

Returns the value of attribute response.



3
4
5
# File 'lib/loops_email/result.rb', line 3

def response
  @response
end

Instance Method Details

#as_jsonObject Also known as: to_h



43
44
45
46
47
48
49
# File 'lib/loops_email/result.rb', line 43

def as_json
  {
    success: success?,
    http_code: http_code,
    body: body
  }
end

#bodyObject



37
38
39
40
41
# File 'lib/loops_email/result.rb', line 37

def body
  JSON.parse(response.body, symbolize_names: true)
rescue JSON::ParserError
  { content: response.body }
end

#errorObject



33
34
35
# File 'lib/loops_email/result.rb', line 33

def error
  body[:error]
end

#failed?Boolean

Returns:

  • (Boolean)


13
14
15
# File 'lib/loops_email/result.rb', line 13

def failed?
  !success?
end

#http_codeObject



25
26
27
# File 'lib/loops_email/result.rb', line 25

def http_code
  response.code
end

#messageObject



29
30
31
# File 'lib/loops_email/result.rb', line 29

def message
  body[:content] || body.dig(:error, :message) || body
end

#operation_success?Boolean

Returns:

  • (Boolean)


21
22
23
# File 'lib/loops_email/result.rb', line 21

def operation_success?
  body[:success]
end

#response_success?Boolean

Returns:

  • (Boolean)


17
18
19
# File 'lib/loops_email/result.rb', line 17

def response_success?
  response.is_a? Net::HTTPSuccess
end

#success?Boolean

Returns:

  • (Boolean)


9
10
11
# File 'lib/loops_email/result.rb', line 9

def success?
  response_success? && operation_success?
end