]> cat aescling's git repositories - mastodon.git/blob - app/controllers/api_controller.rb
4ccf20bc97c0331ca336e27d6d055dd80edfda2f
[mastodon.git] / app / controllers / api_controller.rb
1 class ApiController < ApplicationController
2 protect_from_forgery with: :null_session
3 skip_before_action :verify_authenticity_token
4
5 rescue_from ActiveRecord::RecordInvalid do |e|
6 render json: { error: e.to_s }, status: 422
7 end
8
9 rescue_from ActiveRecord::RecordNotFound do
10 render json: { error: 'Record not found' }, status: 404
11 end
12
13 rescue_from Goldfinger::Error do
14 render json: { error: 'Remote account could not be resolved' }, status: 422
15 end
16
17 rescue_from HTTP::Error do
18 render json: { error: 'Remote data could not be fetched' }, status: 503
19 end
20
21 rescue_from OpenSSL::SSL::SSLError do
22 render json: { error: 'Remote SSL certificate could not be verified' }, status: 503
23 end
24
25 protected
26
27 def current_resource_owner
28 User.find(doorkeeper_token.resource_owner_id) if doorkeeper_token
29 end
30
31 def current_user
32 super || current_resource_owner
33 end
34
35 def render_empty
36 render json: {}, status: 200
37 end
38 end
This page took 0.063335 seconds and 2 git commands to generate.