-
Notifications
You must be signed in to change notification settings - Fork 11
/
Copy pathapi_controller.rb
42 lines (33 loc) · 1.14 KB
/
api_controller.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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
module Api
module V1
class ApiController < ApplicationController
skip_before_filter :authenticate_user!
respond_to :json
rescue_from Exception, :with => :rescue_from_exception
private
def current_user
@current_user ||= doorkeeper_token ?
User.find(doorkeeper_token.resource_owner_id) :
AnonymousUser.instance
end
def rescue_from_exception(exception)
# See https://github.com/rack/rack/blob/master/lib/rack/utils.rb#L453 for error names/symbols
error = :internal_server_error
send_email = true
case exception
when SecurityTransgression
error = :forbidden
send_email = false
when ActiveRecord::RecordNotFound,
ActionController::RoutingError,
ActionController::UnknownController,
AbstractController::ActionNotFound
error = :not_found
send_email = false
end
DeveloperErrorNotifier.exception_email(exception, request, present_user) if send_email
head error
end
end
end
end