summaryrefslogtreecommitdiff
path: root/app/services
diff options
context:
space:
mode:
authorJames Lopez <james@jameslopez.es>2016-04-07 18:14:42 +0200
committerJames Lopez <james@jameslopez.es>2016-04-07 18:14:42 +0200
commitde6c44e983a788262b72355b85d085a675c9fccc (patch)
tree83d1c3b13ef22c57ec0d6c53bd700e104161362a /app/services
parentacfa0b69d5370749cee9768bf79b58daf6d916a4 (diff)
downloadgitlab-ce-de6c44e983a788262b72355b85d085a675c9fccc.tar.gz
using new config
Diffstat (limited to 'app/services')
-rw-r--r--app/services/projects/import_export.rb18
-rw-r--r--app/services/projects/import_export/import_export.yml6
-rw-r--r--app/services/projects/import_export/import_export_reader.rb17
-rw-r--r--app/services/projects/import_export/project_tree_saver.rb2
4 files changed, 19 insertions, 24 deletions
diff --git a/app/services/projects/import_export.rb b/app/services/projects/import_export.rb
index e1d7458a13b..c74f1d31490 100644
--- a/app/services/projects/import_export.rb
+++ b/app/services/projects/import_export.rb
@@ -11,27 +11,11 @@ module Projects
end
def project_tree
- %i(issues labels milestones releases events) + [snippets, members, merge_requests, commit_statuses]
+ Projects::ImportExport::ImportExportReader.project_tree
end
private
- def snippets
- { snippets: { except: :expired_at } }
- end
-
- def merge_requests
- { merge_requests: { include: :merge_request_diff } }
- end
-
- def commit_statuses
- { commit_statuses: { include: :commit } }
- end
-
- def members
- { project_members: { include: [user: { only: [:id, :email, :username] }] } }
- end
-
def storage_path
File.join(Settings.shared['path'], 'tmp/project_exports')
end
diff --git a/app/services/projects/import_export/import_export.yml b/app/services/projects/import_export/import_export.yml
index 40fd98b8092..be7680775ba 100644
--- a/app/services/projects/import_export/import_export.yml
+++ b/app/services/projects/import_export/import_export.yml
@@ -28,4 +28,8 @@
:user:
- :id
- :email
- - :username \ No newline at end of file
+ - :username
+
+:attributes_except:
+ :snippets:
+ - :expired_at \ No newline at end of file
diff --git a/app/services/projects/import_export/import_export_reader.rb b/app/services/projects/import_export/import_export_reader.rb
index 77a1abb851b..981f19c0acb 100644
--- a/app/services/projects/import_export/import_export_reader.rb
+++ b/app/services/projects/import_export/import_export_reader.rb
@@ -26,7 +26,14 @@ module Projects
end
def build_hash(array)
- array.map { |el| el.is_a?(Hash) ? process_include(el) : el }
+ array.map do |el|
+ if el.is_a?(Hash)
+ process_include(el)
+ else
+ only_except_hash = check_only_and_except(el)
+ only_except_hash.empty? ? el : { el => only_except_hash }
+ end
+ end
end
def process_include(hash, included_classes_hash = {})
@@ -44,8 +51,8 @@ module Projects
def process_current_class(hash, included_classes_hash, value)
value = value.is_a?(Hash) ? process_include(hash, included_classes_hash) : value
current_key = hash.keys.first
- current_key_only = check_only_and_except(current_key)
- included_classes_hash[current_key] ||= current_key_only unless current_key_only.empty?
+ only_except_hash = check_only_and_except(current_key)
+ included_classes_hash[current_key] ||= only_except_hash unless only_except_hash.empty?
return current_key, value
end
@@ -56,8 +63,8 @@ module Projects
end
def add_class(current_key, included_classes_hash, value)
- check_only_hash = check_only_and_except(value)
- value = { value => check_only_hash } unless check_only_hash.empty?
+ only_except_hash = check_only_and_except(value)
+ value = { value => only_except_hash } unless only_except_hash.empty?
old_values = included_classes_hash[current_key][:include]
included_classes_hash[current_key][:include] = ([old_values] + [value]).compact.flatten
end
diff --git a/app/services/projects/import_export/project_tree_saver.rb b/app/services/projects/import_export/project_tree_saver.rb
index 3ca90d1f79a..44d100acd1d 100644
--- a/app/services/projects/import_export/project_tree_saver.rb
+++ b/app/services/projects/import_export/project_tree_saver.rb
@@ -32,7 +32,7 @@ module Projects
def project_json_tree
# TODO confirm children, also add subchildren (i.e comments)
# TODO confirm atts for children
- @project.to_json(only: ImportExport.project_atts, include: ImportExport.project_tree)
+ @project.to_json(Projects::ImportExport.project_tree)
end
end
end