18 lines
414 B
Ruby
18 lines
414 B
Ruby
# frozen_string_literal: true
|
|
|
|
class PollParticipationService
|
|
def initialize(user)
|
|
@user = user
|
|
end
|
|
|
|
def vote(post_id, answer_id)
|
|
answer = PollAnswer.find(answer_id)
|
|
@user.participate_in_poll!(target(post_id), answer) if target(post_id)
|
|
end
|
|
|
|
private
|
|
|
|
def target(post_id)
|
|
@target ||= @user.find_visible_shareable_by_id(Post, post_id) || raise(ActiveRecord::RecordNotFound.new)
|
|
end
|
|
end
|