From 7e47a82899bdb10d2cdc61ce237a25bfa7f8a392 Mon Sep 17 00:00:00 2001 From: "Z.J. van de Weg" Date: Mon, 8 Aug 2016 20:32:10 +0200 Subject: Namespace EnableDeployKeyService under Projects --- app/controllers/projects/deploy_keys_controller.rb | 2 +- app/services/enable_deploy_key_service.rb | 14 ----------- app/services/projects/enable_deploy_key_service.rb | 17 ++++++++++++++ lib/api/deploy_keys.rb | 3 ++- spec/services/enable_deploy_key_service_spec.rb | 27 ---------------------- .../projects/enable_deploy_key_service_spec.rb | 27 ++++++++++++++++++++++ 6 files changed, 47 insertions(+), 43 deletions(-) delete mode 100644 app/services/enable_deploy_key_service.rb create mode 100644 app/services/projects/enable_deploy_key_service.rb delete mode 100644 spec/services/enable_deploy_key_service_spec.rb create mode 100644 spec/services/projects/enable_deploy_key_service_spec.rb diff --git a/app/controllers/projects/deploy_keys_controller.rb b/app/controllers/projects/deploy_keys_controller.rb index ade2c54552b..529e0aa2d33 100644 --- a/app/controllers/projects/deploy_keys_controller.rb +++ b/app/controllers/projects/deploy_keys_controller.rb @@ -27,7 +27,7 @@ class Projects::DeployKeysController < Projects::ApplicationController end def enable - EnableDeployKeyService.new(@project, current_user, params).execute + Projects::EnableDeployKeyService.new(@project, current_user, params).execute redirect_to namespace_project_deploy_keys_path(@project.namespace, @project) end diff --git a/app/services/enable_deploy_key_service.rb b/app/services/enable_deploy_key_service.rb deleted file mode 100644 index baa4a9dd2d4..00000000000 --- a/app/services/enable_deploy_key_service.rb +++ /dev/null @@ -1,14 +0,0 @@ -class EnableDeployKeyService < BaseService - def execute - key = accessible_keys.find_by(id: params[:key_id] || params[:id]) - - project.deploy_keys << key if key - key - end - - private - - def accessible_keys - current_user.accessible_deploy_keys - end -end diff --git a/app/services/projects/enable_deploy_key_service.rb b/app/services/projects/enable_deploy_key_service.rb new file mode 100644 index 00000000000..3cf4264ce9b --- /dev/null +++ b/app/services/projects/enable_deploy_key_service.rb @@ -0,0 +1,17 @@ +module Projects + class EnableDeployKeyService < BaseService + def execute + key = accessible_keys.find_by(id: params[:key_id] || params[:id]) + return unless key + + project.deploy_keys << key + key + end + + private + + def accessible_keys + current_user.accessible_deploy_keys + end + end +end diff --git a/lib/api/deploy_keys.rb b/lib/api/deploy_keys.rb index 6dc9beb57ec..825e05fbae3 100644 --- a/lib/api/deploy_keys.rb +++ b/lib/api/deploy_keys.rb @@ -76,7 +76,8 @@ module API requires :key_id, type: Integer, desc: 'The ID of the deploy key' end post ":id/#{path}/:key_id/enable" do - key = EnableDeployKeyService.new(user_project, current_user, declared(params)).execute + key = ::Projects::EnableDeployKeyService.new(user_project, + current_user, declared(params)).execute if key present key, with: Entities::SSHKey diff --git a/spec/services/enable_deploy_key_service_spec.rb b/spec/services/enable_deploy_key_service_spec.rb deleted file mode 100644 index abb5710dfc0..00000000000 --- a/spec/services/enable_deploy_key_service_spec.rb +++ /dev/null @@ -1,27 +0,0 @@ -require 'spec_helper' - -describe EnableDeployKeyService, services: true do - let(:deploy_key) { create(:deploy_key, public: true) } - let(:project) { create(:empty_project) } - let(:user) { project.creator} - let!(:params) { { key_id: deploy_key.id } } - - it 'enables the key' do - expect do - service.execute - end.to change { project.deploy_keys.count }.from(0).to(1) - end - - context 'trying to add an unaccessable key' do - let(:another_key) { create(:another_key) } - let!(:params) { { key_id: another_key.id } } - - it 'returns nil if the key cannot be added' do - expect(service.execute).to be nil - end - end - - def service - EnableDeployKeyService.new(project, user, params) - end -end diff --git a/spec/services/projects/enable_deploy_key_service_spec.rb b/spec/services/projects/enable_deploy_key_service_spec.rb new file mode 100644 index 00000000000..a37510cf159 --- /dev/null +++ b/spec/services/projects/enable_deploy_key_service_spec.rb @@ -0,0 +1,27 @@ +require 'spec_helper' + +describe Projects::EnableDeployKeyService, services: true do + let(:deploy_key) { create(:deploy_key, public: true) } + let(:project) { create(:empty_project) } + let(:user) { project.creator} + let!(:params) { { key_id: deploy_key.id } } + + it 'enables the key' do + expect do + service.execute + end.to change { project.deploy_keys.count }.from(0).to(1) + end + + context 'trying to add an unaccessable key' do + let(:another_key) { create(:another_key) } + let!(:params) { { key_id: another_key.id } } + + it 'returns nil if the key cannot be added' do + expect(service.execute).to be nil + end + end + + def service + Projects::EnableDeployKeyService.new(project, user, params) + end +end -- cgit v1.2.1