Revision ba69b49b
Added by Martin Bacovsky almost 12 years ago
- ID ba69b49bedf7df0e00bb434852e21e62e0630c6e
app/controllers/api/base_controller.rb | ||
---|---|---|
|
||
rescue_from StandardError, :with => lambda { |error|
|
||
Rails.logger.error "#{error.message} (#{error.class})\n#{error.backtrace.join("\n")}"
|
||
render_error 'standard_error', :status => 500, :locals => { :error => error }
|
||
render_error 'standard_error', :status => 500, :locals => { :exception => error }
|
||
}
|
||
|
||
def get_resource
|
||
... | ... | |
end
|
||
end
|
||
|
||
def process_response(condition, response = get_resource)
|
||
if condition
|
||
def process_success(response = nil)
|
||
response ||= get_resource
|
||
respond_with response
|
||
end
|
||
|
||
def process_response(condition, response = nil)
|
||
if condition
|
||
process_success response
|
||
else
|
||
process_resource_error
|
||
end
|
||
... | ... | |
User.current.allowed_to?(:controller => ctrl.gsub(/::/, "_").underscore, :action => action) or deny_access
|
||
end
|
||
|
||
def deny_access
|
||
render_error 'access_denied', :status => :forbidden
|
||
def deny_access(details = nil)
|
||
render_error 'access_denied', :status => :forbidden, :locals => { :details => details }
|
||
false
|
||
end
|
||
|
||
... | ... | |
# store params[:id] under correct predicable key
|
||
def set_resource_params
|
||
if (id_or_name = params.delete(:id))
|
||
suffix = id_or_name =~ /^\d+$/ ? 'id' : 'name'
|
||
suffix = (id_or_name.is_a?(Fixnum) || id_or_name =~ /^\d+$/) ? 'id' : 'name'
|
||
params[:"#{resource_name}_#{suffix}"] = id_or_name
|
||
end
|
||
end
|
Also available in: Unified diff
api v1 - Users controller and tests
- split api routes to separate routes file
- better detection of permission failure in model
- fix ApiConstraints
- catch bad routes in api and return json
- render home#index links from restapi
- fixed resource params recognition