diff options
Diffstat (limited to 'app/services/snippets')
-rw-r--r-- | app/services/snippets/base_service.rb | 9 | ||||
-rw-r--r-- | app/services/snippets/bulk_destroy_service.rb | 4 | ||||
-rw-r--r-- | app/services/snippets/create_service.rb | 3 | ||||
-rw-r--r-- | app/services/snippets/update_service.rb | 5 |
4 files changed, 17 insertions, 4 deletions
diff --git a/app/services/snippets/base_service.rb b/app/services/snippets/base_service.rb index 1a04c4fcedd..42e62d65ee4 100644 --- a/app/services/snippets/base_service.rb +++ b/app/services/snippets/base_service.rb @@ -73,6 +73,15 @@ module Snippets message end + def file_paths_to_commit + paths = [] + snippet_actions.to_commit_actions.each do |action| + paths << { path: action[:file_path] } + end + + paths + end + def files_to_commit(snippet) snippet_actions.to_commit_actions.presence || build_actions_from_params(snippet) end diff --git a/app/services/snippets/bulk_destroy_service.rb b/app/services/snippets/bulk_destroy_service.rb index 6eab9fb320e..9c6e1c14051 100644 --- a/app/services/snippets/bulk_destroy_service.rb +++ b/app/services/snippets/bulk_destroy_service.rb @@ -14,10 +14,10 @@ module Snippets @snippets = snippets end - def execute(options = {}) + def execute(skip_authorization: false) return ServiceResponse.success(message: 'No snippets found.') if snippets.empty? - user_can_delete_snippets! unless options[:hard_delete] + user_can_delete_snippets! unless skip_authorization attempt_delete_repositories! snippets.destroy_all # rubocop: disable Cop/DestroyAll diff --git a/app/services/snippets/create_service.rb b/app/services/snippets/create_service.rb index 6d3b63de9fd..e0bab4cd6ad 100644 --- a/app/services/snippets/create_service.rb +++ b/app/services/snippets/create_service.rb @@ -24,7 +24,8 @@ module Snippets spammable: @snippet, spam_params: spam_params, user: current_user, - action: :create + action: :create, + extra_features: { files: file_paths_to_commit } ).execute if save_and_commit diff --git a/app/services/snippets/update_service.rb b/app/services/snippets/update_service.rb index 76d5063c337..067680f2abc 100644 --- a/app/services/snippets/update_service.rb +++ b/app/services/snippets/update_service.rb @@ -23,11 +23,14 @@ module Snippets update_snippet_attributes(snippet) + files = snippet.all_files.map { |f| { path: f } } + file_paths_to_commit + Spam::SpamActionService.new( spammable: snippet, spam_params: spam_params, user: current_user, - action: :update + action: :update, + extra_features: { files: files } ).execute if save_and_commit(snippet) |