debian-mirror-gitlab/app/services/packages/create_event_service.rb

50 lines
1.1 KiB
Ruby
Raw Normal View History

2021-01-03 14:25:43 +05:30
# frozen_string_literal: true
module Packages
class CreateEventService < BaseService
def execute
2021-01-29 00:20:46 +05:30
if Feature.enabled?(:collect_package_events_redis) && redis_event_name
::Gitlab::UsageDataCounters::HLLRedisCounter.track_event(current_user.id, redis_event_name)
end
if Feature.enabled?(:collect_package_events) && Gitlab::Database.read_write?
::Packages::Event.create!(
event_type: event_name,
originator: current_user&.id,
originator_type: originator_type,
event_scope: event_scope
)
end
2021-01-03 14:25:43 +05:30
end
private
2021-01-29 00:20:46 +05:30
def redis_event_name
@redis_event_name ||= ::Packages::Event.allowed_event_name(event_scope, event_name, originator_type)
end
def event_scope
@event_scope ||= scope.is_a?(::Packages::Package) ? scope.package_type : scope
end
2021-01-03 14:25:43 +05:30
def scope
params[:scope]
end
def event_name
params[:event_name]
end
def originator_type
case current_user
when User
:user
when DeployToken
:deploy_token
else
:guest
end
end
end
end