summaryrefslogtreecommitdiff
path: root/app/services/update_release_service.rb
blob: f1d5d0231007ea7b461fd2de25962ad82b58aab8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# frozen_string_literal: true

class UpdateReleaseService < BaseService
  def execute
    return error('Unauthorized', 401) unless Ability.allowed?(current_user, :update_release, project)

    tag_name = params[:tag]
    release = Release.by_tag(project, tag_name)

    return error('Release does not exist', 404) if release.blank?

    if release.update(params)
      success(release: release)
    else
      error(release.errors.messages || '400 Bad request', 400)
    end
  end
end