40 lines
851 B
Ruby
40 lines
851 B
Ruby
|
# frozen_string_literal: true
|
||
|
|
||
|
module Gitlab::UsageDataCounters
|
||
|
class NoteCounter < BaseCounter
|
||
|
KNOWN_EVENTS = %w[create].freeze
|
||
|
PREFIX = 'note'
|
||
|
COUNTABLE_TYPES = %w[Snippet].freeze
|
||
|
|
||
|
class << self
|
||
|
def redis_key(event, noteable_type)
|
||
|
"#{super(event)}_#{noteable_type}".upcase
|
||
|
end
|
||
|
|
||
|
def count(event, noteable_type)
|
||
|
return unless countable?(noteable_type)
|
||
|
|
||
|
increment(redis_key(event, noteable_type))
|
||
|
end
|
||
|
|
||
|
def read(event, noteable_type)
|
||
|
return 0 unless countable?(noteable_type)
|
||
|
|
||
|
total_count(redis_key(event, noteable_type))
|
||
|
end
|
||
|
|
||
|
def totals
|
||
|
{
|
||
|
snippet_comment: read(:create, 'Snippet')
|
||
|
}
|
||
|
end
|
||
|
|
||
|
private
|
||
|
|
||
|
def countable?(noteable_type)
|
||
|
COUNTABLE_TYPES.include?(noteable_type.to_s)
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|