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 21:00:47 +01: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 11:34:55 +01:00
authorize!(:pin, user, answer)
check_unpinned!
2023-01-29 21:00:47 +01:00
answer.pinned_at = Time.now.utc
answer.save!
{
status: 200,
2023-02-07 22:06:35 +01:00
resource: answer,
2023-01-29 21:00:47 +01:00
}
end
private
def check_unpinned!
raise ::Errors::BadRequest if answer.pinned_at.present?
end
2023-01-29 21:00:47 +01:00
end
end
end