scube-server/app/controllers/api/application_controller.rb
2015-05-03 19:52:54 +00:00

45 lines
1.1 KiB
Ruby

module API
class ApplicationController < ::ApplicationController
rescue_from ActiveRecord::RecordNotFound, with: :not_found
skip_before_filter :verify_authenticity_token
skip_before_filter :authenticate!, only: :cor_preflight
before_filter :cor_filter
before_filter :json_filter!, except: :cor_preflight
def not_found
head :not_found
end
def cor_filter
headers['Access-Control-Allow-Origin'] = request.headers['Origin'] ?
request.headers['Origin'] :
''
headers['Access-Control-Allow-Credentials'] = 'true'
headers['Access-Control-Expose-Headers'] = 'Content-Length'
end
def cor_preflight
headers['Access-Control-Allow-Methods'] = 'GET, POST, PUT, DELETE'
headers['Access-Control-Allow-Headers'] =
'Content-Type, Content-Length, X-Requested-With'
head :ok
end
def ping
render json: { pong: 'ok' }
end
def authenticate!
head :unauthorized if current_user.nil?
end
def json_filter!
return if request.format.json?
head :not_acceptable, content_type: 'application/json'
end
end
end