Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app/services/gpg_keys/create_service.rb')
-rw-r--r--app/services/gpg_keys/create_service.rb16
1 files changed, 13 insertions, 3 deletions
diff --git a/app/services/gpg_keys/create_service.rb b/app/services/gpg_keys/create_service.rb
index ab8b12732d7..c061c92df3e 100644
--- a/app/services/gpg_keys/create_service.rb
+++ b/app/services/gpg_keys/create_service.rb
@@ -3,15 +3,25 @@
module GpgKeys
class CreateService < Keys::BaseService
def execute
- key = create(params)
+ key = user.gpg_keys.build(params)
+
+ return key unless validate(key)
+
+ create(key)
+
notification_service.new_gpg_key(key) if key.persisted?
key
end
private
- def create(params)
- user.gpg_keys.create(params)
+ def validate(key)
+ GpgKeys::ValidateIntegrationsService.new(key).execute
+ end
+
+ def create(key)
+ key.save
+ key
end
end
end