diff options
Diffstat (limited to 'app/services/releases')
-rw-r--r-- | app/services/releases/concerns.rb | 48 | ||||
-rw-r--r-- | app/services/releases/create_service.rb | 22 | ||||
-rw-r--r-- | app/services/releases/destroy_service.rb | 14 | ||||
-rw-r--r-- | app/services/releases/update_service.rb | 14 |
4 files changed, 43 insertions, 55 deletions
diff --git a/app/services/releases/concerns.rb b/app/services/releases/concerns.rb deleted file mode 100644 index a04bb8f9e14..00000000000 --- a/app/services/releases/concerns.rb +++ /dev/null @@ -1,48 +0,0 @@ -# frozen_string_literal: true - -module Releases - module Concerns - extend ActiveSupport::Concern - include Gitlab::Utils::StrongMemoize - - included do - def tag_name - params[:tag] - end - - def ref - params[:ref] - end - - def name - params[:name] - end - - def description - params[:description] - end - - def release - strong_memoize(:release) do - project.releases.find_by_tag(tag_name) - end - end - - def existing_tag - strong_memoize(:existing_tag) do - repository.find_tag(tag_name) - end - end - - def tag_exist? - existing_tag.present? - end - - def repository - strong_memoize(:repository) do - project.repository - end - end - end - end -end diff --git a/app/services/releases/create_service.rb b/app/services/releases/create_service.rb index c6e143d440d..c1d20b9858c 100644 --- a/app/services/releases/create_service.rb +++ b/app/services/releases/create_service.rb @@ -2,7 +2,7 @@ module Releases class CreateService < BaseService - include Releases::Concerns + include Gitlab::Utils::StrongMemoize def execute return error('Access Denied', 403) unless allowed? @@ -22,11 +22,11 @@ module Releases end def create_tag - return error('Ref is not specified', 422) unless ref + return error('Ref is not specified', 422) unless params[:ref] result = Tags::CreateService .new(project, current_user) - .execute(tag_name, ref, nil) + .execute(params[:tag], ref, nil) return result unless result[:status] == :success @@ -39,8 +39,8 @@ module Releases def create_release(tag) release = project.releases.create!( - name: name, - description: description, + name: params[:name], + description: params[:description], author: current_user, tag: tag.name, sha: tag.dereferenced_target.sha, @@ -51,5 +51,17 @@ module Releases rescue => e error(e.message, 400) end + + def release + strong_memoize(:release) do + project.releases.find_by_tag(tag_name) + end + end + + def existing_tag + strong_memoize(:existing_tag) do + project.repository.find_tag(tag_name) + end + end end end diff --git a/app/services/releases/destroy_service.rb b/app/services/releases/destroy_service.rb index 8c2bc3b4e6e..09aa693737d 100644 --- a/app/services/releases/destroy_service.rb +++ b/app/services/releases/destroy_service.rb @@ -2,7 +2,7 @@ module Releases class DestroyService < BaseService - include Releases::Concerns + include Gitlab::Utils::StrongMemoize def execute return error('Tag does not exist', 404) unless existing_tag @@ -21,5 +21,17 @@ module Releases def allowed? Ability.allowed?(current_user, :destroy_release, release) end + + def release + strong_memoize(:release) do + project.releases.find_by_tag(tag_name) + end + end + + def existing_tag + strong_memoize(:existing_tag) do + project.repository.find_tag(tag_name) + end + end end end diff --git a/app/services/releases/update_service.rb b/app/services/releases/update_service.rb index fabfa398c59..e37074e0012 100644 --- a/app/services/releases/update_service.rb +++ b/app/services/releases/update_service.rb @@ -2,7 +2,7 @@ module Releases class UpdateService < BaseService - include Releases::Concerns + include Gitlab::Utils::StrongMemoize def execute return error('Tag does not exist', 404) unless existing_tag @@ -28,5 +28,17 @@ module Releases params.except(:tag).empty? end # rubocop: enable CodeReuse/ActiveRecord + + def release + strong_memoize(:release) do + project.releases.find_by_tag(tag_name) + end + end + + def existing_tag + strong_memoize(:existing_tag) do + project.repository.find_tag(tag_name) + end + end end end |