notices_controller.rb
928 Bytes
class Api::V3::NoticesController < ApplicationController
skip_before_action :verify_authenticity_token
skip_before_action :authenticate_user!
respond_to :json
def create
response.headers['Access-Control-Allow-Origin'] = '*'
response.headers['Access-Control-Allow-Headers'] = 'origin, content-type, accept'
params.merge!(JSON.parse(request.raw_post) || {})
report = AirbrakeApi::V3::NoticeParser.new(params).report
if report.valid?
if report.should_keep?
report.generate_notice!
render json: {
id: report.notice.id,
url: app_problem_url(
report.app,
report.error.problem_id)
}
else
render text: 'Notice for old app version ignored'
end
else
render text: 'Your API key is unknown', status: 422
end
rescue AirbrakeApi::ParamsError
render text: 'Invalid request', status: 400
end
end