diff options
Diffstat (limited to 'app/services/environments/destroy_service.rb')
-rw-r--r-- | app/services/environments/destroy_service.rb | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/app/services/environments/destroy_service.rb b/app/services/environments/destroy_service.rb new file mode 100644 index 00000000000..f1530489a40 --- /dev/null +++ b/app/services/environments/destroy_service.rb @@ -0,0 +1,23 @@ +# frozen_string_literal: true + +module Environments + class DestroyService < BaseService + def execute(environment) + unless can?(current_user, :destroy_environment, environment) + return ServiceResponse.error( + message: 'Unauthorized to delete the environment' + ) + end + + environment.destroy + + unless environment.destroyed? + return ServiceResponse.error( + message: 'Attemped to destroy the environment but failed' + ) + end + + ServiceResponse.success + end + end +end |