Class: RubyAPI::Response

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

Overview

Response

Constant Summary collapse

FAIL =
500
OK =
200
DEFAULT_HEADERS =
{
  'Content-Type' => 'application/json; charset=utf-8'
}.freeze

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.error(data) ⇒ Object



14
15
16
# File 'lib/ruby_api/response.rb', line 14

def error(data)
  new(data, error: true)
end

.exception(err) ⇒ Object



18
19
20
21
22
# File 'lib/ruby_api/response.rb', line 18

def exception(err)
  data = { message: err.message }
  data[:backtrace] = err.backtrace if RubyAPI.development?
  new(data, error: true)
end

.ok(data) ⇒ Object



24
25
26
# File 'lib/ruby_api/response.rb', line 24

def ok(data)
  new(data)
end

.operation(result) ⇒ Object



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

def operation(result)
  return new(result['errors'], error: true) if result.failure?
  new(result['result'])
end

Instance Method Details

#dataObject



50
51
52
# File 'lib/ruby_api/response.rb', line 50

def data
  @data.is_a?(String) ? @data : @data.to_json
end

#failure?Boolean

Returns:



42
43
44
# File 'lib/ruby_api/response.rb', line 42

def failure?
  @error
end

#headersObject



38
39
40
# File 'lib/ruby_api/response.rb', line 38

def headers
  @headers || DEFAULT_HEADERS
end

#statusObject



34
35
36
# File 'lib/ruby_api/response.rb', line 34

def status
  success? ? OK : (@status || FAIL)
end

#success?Boolean

Returns:



46
47
48
# File 'lib/ruby_api/response.rb', line 46

def success?
  !failure?
end