summaryrefslogtreecommitdiff
path: root/app/controllers/concerns/toggle_award_emoji.rb
blob: 036777c80c19f1edf6a29e19b4d53f91b6d6262b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
module ToggleAwardEmoji
  extend ActiveSupport::Concern

  included do
    before_action :authenticate_user!, only: [:toggle_award_emoji]
  end

  def toggle_award_emoji
    name = params.require(:name)

    awardable.toggle_award_emoji(name, current_user)
    TodoService.new.new_award_emoji(to_todoable(awardable), current_user)

    render json: { ok: true }
  end

  private

  def to_todoable(awardable)
    case awardable
    when Note
      awardable.noteable
    else
      awardable
    end
  end

  def awardable
    raise NotImplementedError
  end
end