Retrospring/app/controllers/ajax/report_controller.rb

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

46 lines
1.0 KiB
Ruby
Raw Normal View History

class Ajax::ReportController < AjaxController
2014-12-28 10:55:50 -08:00
def create
params.require :id
params.require :type
@response[:status] = :err
2014-12-28 10:55:50 -08:00
unless user_signed_in?
@response[:status] = :noauth
@response[:message] = t(".noauth")
2014-12-28 10:55:50 -08:00
return
end
unless %w(answer comment question user).include? params[:type]
@response[:message] = t(".unknown")
2014-12-28 10:55:50 -08:00
return
end
2015-09-01 06:14:31 -07:00
obj = params[:type].strip.capitalize
2015-09-18 02:08:08 -07:00
object = case obj
2015-09-01 06:14:31 -07:00
when 'User'
2020-05-01 00:57:44 -07:00
User.find_by_screen_name! params[:id]
2015-09-01 06:14:31 -07:00
when 'Question'
2015-09-18 02:09:26 -07:00
Question.find params[:id]
2015-09-01 06:14:31 -07:00
when 'Answer'
2015-09-18 02:09:26 -07:00
Answer.find params[:id]
2015-09-01 06:14:31 -07:00
when 'Comment'
2015-09-18 02:09:26 -07:00
Comment.find params[:id]
2015-09-01 06:14:31 -07:00
else
2015-09-18 02:09:26 -07:00
Answer.find params[:id]
2015-09-01 06:14:31 -07:00
end
2014-12-28 16:47:04 -08:00
2014-12-28 10:55:50 -08:00
if object.nil?
@response[:message] = t(".notfound", parameter: params[:type])
2014-12-28 10:55:50 -08:00
return
end
2015-09-18 02:09:26 -07:00
current_user.report object, params[:reason]
2014-12-28 10:55:50 -08:00
@response[:status] = :okay
@response[:message] = t(".success", parameter: params[:type].titleize)
@response[:success] = true
2014-12-28 10:55:50 -08:00
end
end