Sha256: dd059d0cec4b63949506ba3c4656b2c9fa4010c33163f7ef22577d8bdd427e28

Contents?: true

Size: 852 Bytes

Versions: 1

Compression:

Stored size: 852 Bytes

Contents

require 'json'
require 'repia/errors'
require 'repia/base_helper'

module Repia

  ##
  # This controller is a base controller for RESTful API. Two primary
  # features: 
  #
  # - Error (exception) handling
  # - Options request handling
  # 
  class BaseController < ActionController::Base
    include BaseHelper

    # This is a catch-all.
    rescue_from StandardError do |exception|
      logger.error exception.message
      render_error 500, "Unknown error occurred: #{exception.message}"
    end

    # Catch all manually thrown HTTP errors (predefined by repia)
    rescue_from Errors::HTTPError do |exception|
      status_code = exception.class.const_get("STATUS_CODE")
      message = exception.message || exception.class::MESSAGE
      logger.error "#{status_code} - #{message}"
      render_error status_code, message
    end

  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
repia-0.2.0 lib/repia/base_controller.rb