Class: BulkImports::UserContributionsExportMapper

Inherits:
Object
  • Object
show all
Defined in:
lib/bulk_imports/user_contributions_export_mapper.rb

Constant Summary collapse

USER_CONTRIBUTIONS_CACHE_KEY =
'bulk_imports/%{portable_class}/%{portable_id}/user_contribution_ids'

Instance Method Summary collapse

Constructor Details

#initialize(portable) ⇒ UserContributionsExportMapper

Returns a new instance of UserContributionsExportMapper.



7
8
9
10
# File 'lib/bulk_imports/user_contributions_export_mapper.rb', line 7

def initialize(portable)
  @portable_class = portable.class
  @portable_id = portable.id
end

Instance Method Details

#cache_user_contributions_on_record(record) ⇒ Object



12
13
14
15
16
17
18
19
20
# File 'lib/bulk_imports/user_contributions_export_mapper.rb', line 12

def cache_user_contributions_on_record(record)
  return if !record || record.is_a?(User)

  user_references = record.attribute_names & ::Gitlab::ImportExport::Base::RelationFactory::USER_REFERENCES
  return if user_references.empty?

  user_ids = user_references.filter_map { |reference| record.try(reference) }
  import_cache.set_add(generate_cache_key, user_ids, timeout: timeout) if user_ids.present?
end

#clear_cacheObject



27
28
29
# File 'lib/bulk_imports/user_contributions_export_mapper.rb', line 27

def clear_cache
  import_cache.expire(generate_cache_key, 0)
end

#get_contributing_usersObject



22
23
24
25
# File 'lib/bulk_imports/user_contributions_export_mapper.rb', line 22

def get_contributing_users
  user_ids = import_cache.values_from_set(generate_cache_key)
  User.by_ids(user_ids)
end