Class: Veye::API::JSONResponse

Inherits:
Object
  • Object
show all
Defined in:
lib/veye/api/json_response.rb

Overview

Unified API response class

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(request, result, response) ⇒ JSONResponse

Returns a new instance of JSONResponse.



8
9
10
11
12
13
14
15
# File 'lib/veye/api/json_response.rb', line 8

def initialize(request, result, response)
  @url = request.url
  @headers = request.headers
  @code = result.code.to_i
  response_data = JSON.parse(response)
  @success, @message = success?(result)
  @data = response_data
end

Instance Attribute Details

#codeObject (readonly)

Returns the value of attribute code.



7
8
9
# File 'lib/veye/api/json_response.rb', line 7

def code
  @code
end

#dataObject (readonly)

Returns the value of attribute data.



7
8
9
# File 'lib/veye/api/json_response.rb', line 7

def data
  @data
end

#headersObject (readonly)

Returns the value of attribute headers.



7
8
9
# File 'lib/veye/api/json_response.rb', line 7

def headers
  @headers
end

#messageObject (readonly)

Returns the value of attribute message.



7
8
9
# File 'lib/veye/api/json_response.rb', line 7

def message
  @message
end

#successObject (readonly)

Returns the value of attribute success.



7
8
9
# File 'lib/veye/api/json_response.rb', line 7

def success
  @success
end

#urlObject (readonly)

Returns the value of attribute url.



7
8
9
# File 'lib/veye/api/json_response.rb', line 7

def url
  @url
end

Instance Method Details

#success?(result) ⇒ Boolean

Returns:

  • (Boolean)


17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/veye/api/json_response.rb', line 17

def success?(result)
  @code = result.code.to_i
  success = false
  case @code
  when 200
    success = true
    message = 'fetched successfully'
  when 201
    success = true
    message = 'created successfully'
  when 400
    message = 'bad request - wrong parameters, data'
  when 401
    message = 'not authorized - add apikey or update settings.'
  when 403
    message = 'forbidden - server refused execute query'
  when 413
    message = 'request entity too big - use smaller data object'
  when 500
    message = 'internal server error - write to us'
  when 501
    message = 'not implemented - write to us'
  when 503
    message = 'service unavailable - temporary overloaded - write to us'
  when 531
    message = 'not authorized - add or update api key'
  else
    success = false
    message = ''
  end

  [success, message]
end