summaryrefslogtreecommitdiff
path: root/lib/bulk_imports/groups/transformers/group_attributes_transformer.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/bulk_imports/groups/transformers/group_attributes_transformer.rb')
-rw-r--r--lib/bulk_imports/groups/transformers/group_attributes_transformer.rb97
1 files changed, 44 insertions, 53 deletions
diff --git a/lib/bulk_imports/groups/transformers/group_attributes_transformer.rb b/lib/bulk_imports/groups/transformers/group_attributes_transformer.rb
index d9efcdb1ba5..83b442458dc 100644
--- a/lib/bulk_imports/groups/transformers/group_attributes_transformer.rb
+++ b/lib/bulk_imports/groups/transformers/group_attributes_transformer.rb
@@ -4,6 +4,7 @@ module BulkImports
module Groups
module Transformers
class GroupAttributesTransformer
+ # rubocop: disable Style/IfUnlessModifier
def transform(context, data)
import_entity = context.entity
@@ -11,74 +12,64 @@ module BulkImports
namespace = Namespace.find_by_full_path(import_entity.destination_namespace)
end
- data
- .then { |data| transform_name(import_entity, namespace, data) }
- .then { |data| transform_path(import_entity, data) }
- .then { |data| transform_full_path(data) }
- .then { |data| transform_parent(context, import_entity, namespace, data) }
- .then { |data| transform_visibility_level(data) }
- .then { |data| transform_project_creation_level(data) }
- .then { |data| transform_subgroup_creation_level(data) }
- end
-
- private
+ params = {
+ 'name' => group_name(namespace, data),
+ 'path' => import_entity.destination_slug.parameterize,
+ 'description' => data['description'],
+ 'lfs_enabled' => data['lfs_enabled'],
+ 'emails_disabled' => data['emails_disabled'],
+ 'mentions_disabled' => data['mentions_disabled'],
+ 'share_with_group_lock' => data['share_with_group_lock']
+ }
- def transform_name(import_entity, namespace, data)
if namespace.present?
- namespace_children_names = namespace.children.pluck(:name) # rubocop: disable CodeReuse/ActiveRecord
-
- if namespace_children_names.include?(data['name'])
- data['name'] = Uniquify.new(1).string(-> (counter) { "#{data['name']}(#{counter})" }) do |base|
- namespace_children_names.include?(base)
- end
- end
+ params['parent_id'] = namespace.id
end
- data
- end
-
- def transform_path(import_entity, data)
- data['path'] = import_entity.destination_slug.parameterize
- data
- end
+ if data.has_key?('two_factor_grace_period')
+ params['two_factor_grace_period'] = data['two_factor_grace_period']
+ end
- def transform_full_path(data)
- data.delete('full_path')
- data
- end
+ if data.has_key?('request_access_enabled')
+ params['request_access_enabled'] = data['request_access_enabled']
+ end
- def transform_parent(context, import_entity, namespace, data)
- data['parent_id'] = namespace.id if namespace.present?
+ if data.has_key?('require_two_factor_authentication')
+ params['require_two_factor_authentication'] = data['require_two_factor_authentication']
+ end
- data
- end
+ if data.has_key?('project_creation_level')
+ params['project_creation_level'] =
+ Gitlab::Access.project_creation_string_options[data['project_creation_level']]
+ end
- def transform_visibility_level(data)
- visibility = data['visibility']
+ if data.has_key?('subgroup_creation_level')
+ params['subgroup_creation_level'] =
+ Gitlab::Access.subgroup_creation_string_options[data['subgroup_creation_level']]
+ end
- return data unless visibility.present?
+ if data.has_key?('visibility')
+ params['visibility_level'] = Gitlab::VisibilityLevel.string_options[data['visibility']]
+ end
- data['visibility_level'] = Gitlab::VisibilityLevel.string_options[visibility]
- data.delete('visibility')
- data
+ params
end
+ # rubocop: enable Style/IfUnlessModifier
- def transform_project_creation_level(data)
- project_creation_level = data['project_creation_level']
-
- return data unless project_creation_level.present?
-
- data['project_creation_level'] = Gitlab::Access.project_creation_string_options[project_creation_level]
- data
- end
+ private
- def transform_subgroup_creation_level(data)
- subgroup_creation_level = data['subgroup_creation_level']
+ def group_name(namespace, data)
+ if namespace.present?
+ namespace_children_names = namespace.children.pluck(:name) # rubocop: disable CodeReuse/ActiveRecord
- return data unless subgroup_creation_level.present?
+ if namespace_children_names.include?(data['name'])
+ data['name'] = Uniquify.new(1).string(-> (counter) { "#{data['name']}(#{counter})" }) do |base|
+ namespace_children_names.include?(base)
+ end
+ end
+ end
- data['subgroup_creation_level'] = Gitlab::Access.subgroup_creation_string_options[subgroup_creation_level]
- data
+ data['name']
end
end
end