A resposne class for all API calls, may be inherited for more specific errors cases
A bad request, e.g. bad parameters
User / pass not ok
User / pass ok, but this action is not permitted
The resource could not be found
Code has not yet been implemented or this is not supported
This operation is not permitted at the current time
All ok e.g. 200
API request acknowledged, but not completed, akin to 201
There was a server error
There was a timeout
An unknown result e.g. 500
The data object to return (on success or failure)
An Array of errors
HTTP Code
Create a new API response
ok true or false
data the response object
errors An initial array of errors
http_code The #http_code (when generated
server side)
# File lib/onapp_market/api/response.rb, line 58 def initialize(ok, data = nil, errors = nil, http_code = 500) @ok = ok @ok = @ok.to_bool if @ok.is_a? String @data = data errors = {} if errors == nil @errors = errors @http_code = http_code end
Server side render of 200
data - Any data
Hash suitable for rails render
# File lib/onapp_market/api/response.rb, line 156 def self.render_200(data = nil) self.new(true, data, {OK => "ok"}, 200).render end
Server side render of 201
data - Any data
Hash suitable for rails render
# File lib/onapp_market/api/response.rb, line 166 def self.render_201(data = nil) self.new(true, data, {OK_SCHEDULE => "ok"}, 201).render end
Server side render of 401
errors - Array of errors
data - Any data
Hash suitable for rails render
# File lib/onapp_market/api/response.rb, line 97 def self.render_401(errors, data = nil) errors = {errors => errors} if errors.is_a? String self.new(false, data, errors, 401).render end
Server side render of 404
errors - Array of errors
data - Any data
Hash suitable for rails render
# File lib/onapp_market/api/response.rb, line 109 def self.render_404(errors = NOT_FOUND, data = nil) errors = {errors => errors } if errors.is_a? String self.new(false, data, errors, 404).render end
Server side render of 422
errors - Array of errors
data - Any data
Hash suitable for rails render
# File lib/onapp_market/api/response.rb, line 121 def self.render_422(errors = BAD_REQUEST, data = nil) errors = {errors => errors } if errors.is_a? String self.new(false, data, errors, 422).render end
Server side render of 501
errors - Array of errors
data - Any data
Hash suitable for rails render
# File lib/onapp_market/api/response.rb, line 145 def self.render_500(errors = SERVER_ERROR, data = nil) errors = {errors => errors} if errors.is_a? String self.new(false, data, errors, 500).render end
Server side render of 500
errors - Array of errors
data - Any data
Hash suitable for rails render
# File lib/onapp_market/api/response.rb, line 133 def self.render_501(errors = SERVER_ERROR, data = nil) errors = {errors => errors} if errors.is_a? String self.new(false, data, errors, 501).render end
Add an error code
code The code
error A textual description of the error
# File lib/onapp_market/api/response.rb, line 78 def add_error(code, error) @errors.push(error) end
Does this repsonse have the specified error code?
code The error code
# File lib/onapp_market/api/response.rb, line 86 def has_error?(code) @errors.inlude?(code) end
Was this response OK?
# File lib/onapp_market/api/response.rb, line 69 def is_ok? @ok end
Render an API status as a hash (suitable for Rails render). No dependencies
Hash suitable for rails render
# File lib/onapp_market/api/response.rb, line 174 def render {:json => {:ok => @ok, :errors => @errors, :data => @data}, :status => @http_code} end