You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

34 lines
836 B

  1. class ApiController < ApplicationController
  2. protect_from_forgery with: :null_session
  3. skip_before_action :verify_authenticity_token
  4. rescue_from ActiveRecord::RecordInvalid do
  5. render json: { error: 'Record invalid' }, status: 422
  6. end
  7. rescue_from ActiveRecord::RecordNotFound do
  8. render json: { error: 'Record not found' }, status: 404
  9. end
  10. rescue_from Goldfinger::Error do
  11. render json: { error: 'Remote account could not be resolved' }, status: 422
  12. end
  13. rescue_from HTTP::Error do
  14. render json: { error: 'Remote data could not be fetched' }, status: 503
  15. end
  16. protected
  17. def current_resource_owner
  18. User.find(doorkeeper_token.resource_owner_id) if doorkeeper_token
  19. end
  20. def current_user
  21. super || current_resource_owner
  22. end
  23. def render_empty
  24. render json: {}, status: 200
  25. end
  26. end