module Faceted::Controller

Public Instance Methods

render_400(exception) click to toggle source

In your base API controller: rescue_from ActiveRecord::RecordNotFound, :with => :record_not_found

# File lib/faceted/controller.rb, line 27
def render_400(exception)
  render :json => {
    success: false,
    response: nil,
    errors: "#{exception.message}"
  }, :status => 400
end
render_500(exception) click to toggle source

In your base API controller: rescue_from Exception, :with => :render_500

# File lib/faceted/controller.rb, line 37
def render_500(exception)
  Rails.logger.info("!!! #{self.class.name} exception caught: #{exception} #{exception.backtrace.join("\n")}")
  render :json => {
    success: false,
    response: nil,
    errors: "#{exception.message}"
  }, :status => 500
end
render_response(obj, code=nil) click to toggle source

For rendering a response with a single object, e.g. render_response(@address)

# File lib/faceted/controller.rb, line 7
def render_response(obj, code=nil)
  render :json => {
    success:  obj.success,
    response: obj.to_hash,
    errors:   obj.errors
  }, :status => code || obj.success ? 200 : 400
end
render_response_with_collection(key, array) click to toggle source

For rendering a response with a multiple objects, e.g. render_response_with_collection(:addresses, @addresses)

# File lib/faceted/controller.rb, line 17
def render_response_with_collection(key, array)
  render :json => {
    success: true,
    response: {"#{key}".to_sym => array},
    errors: nil
  }
end