diff options
Diffstat (limited to 'app/services/update_release_service.rb')
-rw-r--r-- | app/services/update_release_service.rb | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/app/services/update_release_service.rb b/app/services/update_release_service.rb index e2228ca026c..b51e72c7bfc 100644 --- a/app/services/update_release_service.rb +++ b/app/services/update_release_service.rb @@ -1,18 +1,28 @@ # frozen_string_literal: true class UpdateReleaseService < BaseService + attr_accessor :tag_name + + def initialize(project, user, tag_name, params) + super(project, user, params) + + @tag_name = tag_name + end + # rubocop: disable CodeReuse/ActiveRecord - def execute(tag_name, release_description) + def execute repository = project.repository - existing_tag = repository.find_tag(tag_name) + existing_tag = repository.find_tag(@tag_name) if existing_tag - release = project.releases.find_by(tag: tag_name) + release = project.releases.find_by(tag: @tag_name) if release - release.update(description: release_description) - - success(release) + if release.update(params) + success(release) + else + error(release.errors.messages || '400 Bad request', 400) + end else error('Release does not exist', 404) end |