Class: BulkImports::UsersMapper

Inherits:
Object
  • Object
show all
Includes:
Gitlab::Utils::StrongMemoize
Defined in:
lib/bulk_imports/users_mapper.rb

Constant Summary collapse

SOURCE_USER_IDS_CACHE_KEY =
'bulk_imports/%{bulk_import}/%{entity}/source_user_ids'
SOURCE_USERNAMES_CACHE_KEY =
'bulk_imports/%{bulk_import}/%{entity}/source_usernames'

Instance Method Summary collapse

Constructor Details

#initialize(context:) ⇒ UsersMapper

Returns a new instance of UsersMapper.



11
12
13
14
15
# File 'lib/bulk_imports/users_mapper.rb', line 11

def initialize(context:)
  @context = context
  @user_ids_cache_key = generate_cache_key(SOURCE_USER_IDS_CACHE_KEY)
  @usernames_cache_key = generate_cache_key(SOURCE_USERNAMES_CACHE_KEY)
end

Instance Method Details

#cache_source_user_id(source_id, destination_id) ⇒ Object



49
50
51
# File 'lib/bulk_imports/users_mapper.rb', line 49

def cache_source_user_id(source_id, destination_id)
  ::Gitlab::Cache::Import::Caching.hash_add(@user_ids_cache_key, source_id, destination_id)
end

#cache_source_username(source_username, destination_username) ⇒ Object



53
54
55
# File 'lib/bulk_imports/users_mapper.rb', line 53

def cache_source_username(source_username, destination_username)
  ::Gitlab::Cache::Import::Caching.hash_add(@usernames_cache_key, source_username, destination_username)
end

#default_user_idObject



45
46
47
# File 'lib/bulk_imports/users_mapper.rb', line 45

def default_user_id
  @context.current_user.id
end

#include?(source_user_id) ⇒ Boolean

Returns:

  • (Boolean)


41
42
43
# File 'lib/bulk_imports/users_mapper.rb', line 41

def include?(source_user_id)
  map.has_key?(source_user_id)
end

#mapObject



17
18
19
20
21
22
23
24
25
26
27
# File 'lib/bulk_imports/users_mapper.rb', line 17

def map
  strong_memoize(:map) do
    map = Hash.new { default_user_id }

    cached_source_user_ids.each_pair do |source_id, destination_id|
      map[source_id.to_i] = destination_id.to_i
    end

    map
  end
end

#map_usernamesObject



29
30
31
32
33
34
35
36
37
38
39
# File 'lib/bulk_imports/users_mapper.rb', line 29

def map_usernames
  strong_memoize(:map_usernames) do
    map = {}

    cached_source_usernames.each_pair do |source_username, destination_username|
      map[source_username] = destination_username
    end

    map
  end
end