27 lines
616 B
Ruby
27 lines
616 B
Ruby
# frozen_string_literal: true
|
|
|
|
module ServicePing
|
|
class BuildPayloadService
|
|
def execute
|
|
return {} unless allowed_to_report?
|
|
|
|
raw_payload
|
|
end
|
|
|
|
private
|
|
|
|
def allowed_to_report?
|
|
product_intelligence_enabled? && !User.single_user&.requires_usage_stats_consent?
|
|
end
|
|
|
|
def product_intelligence_enabled?
|
|
::Gitlab::CurrentSettings.usage_ping_enabled?
|
|
end
|
|
|
|
def raw_payload
|
|
@raw_payload ||= ::Gitlab::Usage::ServicePingReport.for(output: :all_metrics_values)
|
|
end
|
|
end
|
|
end
|
|
|
|
ServicePing::BuildPayloadService.prepend_mod_with('ServicePing::BuildPayloadService')
|