Retrospring/lib/use_case/answer/pin.rb

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

30 lines
553 B
Ruby
Raw Normal View History

2023-01-29 12:00:47 -08:00
# frozen_string_literal: true
module UseCase
module Answer
class Pin < UseCase::Base
option :user, type: Types.Instance(::User)
option :answer, type: Types.Instance(::Answer)
def call
2023-02-10 02:34:55 -08:00
authorize!(:pin, user, answer)
check_unpinned!
2023-01-29 12:00:47 -08:00
answer.pinned_at = Time.now.utc
answer.save!
{
status: 200,
2023-02-07 13:06:35 -08:00
resource: answer,
2023-01-29 12:00:47 -08:00
}
end
private
def check_unpinned!
raise ::Errors::BadRequest if answer.pinned_at.present?
end
2023-01-29 12:00:47 -08:00
end
end
end