Retrospring/lib/use_case/question/destroy.rb

27 lines
539 B
Ruby

# frozen_string_literal: true
require "use_case/base"
require "errors"
module UseCase
module Question
class Destroy < UseCase::Base
option :question_id, type: Types::Coercible::Integer
option :current_user, type: Types::Instance(::User)
def call
question = ::Question.find(question_id)
raise Errors::Forbidden unless current_user&.mod? || question.user == current_user
question.destroy!
{
status: 204,
resource: nil,
}
end
end
end
end