29 lines
658 B
Ruby
29 lines
658 B
Ruby
|
# frozen_string_literal: true
|
||
|
|
||
|
module Groups
|
||
|
class UpdateStatisticsService
|
||
|
attr_reader :group, :statistics
|
||
|
|
||
|
def initialize(group, statistics: [])
|
||
|
@group = group
|
||
|
@statistics = statistics
|
||
|
end
|
||
|
|
||
|
def execute
|
||
|
unless group
|
||
|
return ServiceResponse.error(message: 'Invalid group', http_status: 400)
|
||
|
end
|
||
|
|
||
|
namespace_statistics.refresh!(only: statistics.map(&:to_sym))
|
||
|
|
||
|
ServiceResponse.success(message: 'Group statistics successfully updated.')
|
||
|
end
|
||
|
|
||
|
private
|
||
|
|
||
|
def namespace_statistics
|
||
|
@namespace_statistics ||= group.namespace_statistics || group.build_namespace_statistics
|
||
|
end
|
||
|
end
|
||
|
end
|