From b13c89b152204429cc17de1c48645c9bedb8807c Mon Sep 17 00:00:00 2001 From: Rajendra Kadam Date: Fri, 19 Jun 2020 18:02:34 +0530 Subject: [PATCH 1/2] Add DestroyService for GPG keys and use for deleting gpg keys via API --- app/services/gpg_keys/destroy_service.rb | 9 +++++++++ lib/api/users.rb | 7 ++++--- spec/services/gpg_keys/destroy_service_spec.rb | 15 +++++++++++++++ 3 files changed, 28 insertions(+), 3 deletions(-) create mode 100644 app/services/gpg_keys/destroy_service.rb create mode 100644 spec/services/gpg_keys/destroy_service_spec.rb diff --git a/app/services/gpg_keys/destroy_service.rb b/app/services/gpg_keys/destroy_service.rb new file mode 100644 index 00000000000000..cecbfe266112b0 --- /dev/null +++ b/app/services/gpg_keys/destroy_service.rb @@ -0,0 +1,9 @@ +# frozen_string_literal: true + +module GpgKeys + class DestroyService < Keys::BaseService + def execute(key) + key.destroy + end + end +end diff --git a/lib/api/users.rb b/lib/api/users.rb index 85a33c608e5664..192eeb691ffc31 100644 --- a/lib/api/users.rb +++ b/lib/api/users.rb @@ -374,9 +374,10 @@ def reorder_users(users) key = user.gpg_keys.find_by(id: params[:key_id]) not_found!('GPG Key') unless key - key.destroy - - no_content! + destroy_conditionally!(key) do |key| + destroy_service = ::GpgKeys::DestroyService.new(current_user) + destroy_service.execute(key) + end end # rubocop: enable CodeReuse/ActiveRecord diff --git a/spec/services/gpg_keys/destroy_service_spec.rb b/spec/services/gpg_keys/destroy_service_spec.rb new file mode 100644 index 00000000000000..82c7ab7adaa3db --- /dev/null +++ b/spec/services/gpg_keys/destroy_service_spec.rb @@ -0,0 +1,15 @@ +# frozen_string_literal: true + +require 'spec_helper' + +describe GpgKeys::DestroyService do + let(:user) { create(:user) } + + subject { described_class.new(user) } + + it 'destroys the GPG key' do + gpg_key = create(:gpg_key) + + expect { subject.execute(gpg_key) }.to change(GpgKey, :count).by(-1) + end +end -- GitLab From 4c70a7b5302eafe4194d2acf3b7bdd3f138652e5 Mon Sep 17 00:00:00 2001 From: Rajendra Kadam Date: Fri, 19 Jun 2020 18:06:02 +0530 Subject: [PATCH 2/2] Add changelog --- changelogs/unreleased/services-usage-7.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 changelogs/unreleased/services-usage-7.yml diff --git a/changelogs/unreleased/services-usage-7.yml b/changelogs/unreleased/services-usage-7.yml new file mode 100644 index 00000000000000..ca3900f36a3ad6 --- /dev/null +++ b/changelogs/unreleased/services-usage-7.yml @@ -0,0 +1,5 @@ +--- +title: Add DestroyService for GPG keys and use for deleting GPG keys via API +merge_request: 34935 +author: Rajendra Kadam +type: fixed -- GitLab