diff --git a/changelogs/unreleased/services-usage-6.yml b/changelogs/unreleased/services-usage-6.yml new file mode 100644 index 0000000000000000000000000000000000000000..14e4384ad94d2fe4b8dabff69e545bd77df4b57c --- /dev/null +++ b/changelogs/unreleased/services-usage-6.yml @@ -0,0 +1,5 @@ +--- +title: Use GpgKeys::CreateService when a user creates GPG keys for themselves via the API +merge_request: 34817 +author: Rajendra Kadam +type: fixed diff --git a/lib/api/users.rb b/lib/api/users.rb index 5f15787015193f2538b4b60f40bcb9ef1345b4c0..824ae7bf89804eebf639f1e430381687706a9b1c 100644 --- a/lib/api/users.rb +++ b/lib/api/users.rb @@ -792,9 +792,9 @@ def find_impersonation_token requires :key, type: String, desc: 'The new GPG key' end post 'gpg_keys' do - key = current_user.gpg_keys.new(declared_params) + key = ::GpgKeys::CreateService.new(current_user, declared_params(include_missing: false)).execute - if key.save + if key.persisted? present key, with: Entities::GpgKey else render_validation_error!(key)