diff options
author | Robert Schilling <rschilling@student.tugraz.at> | 2015-11-22 00:34:53 +0300 |
---|---|---|
committer | Robert Schilling <rschilling@student.tugraz.at> | 2015-11-22 00:34:53 +0300 |
commit | 04a3d27eaba0312d99e8d88a3a9ee4b5c83ecce1 (patch) | |
tree | 76edf025912fa34c1942f98deefb406148953842 /app/services/update_release_service.rb | |
parent | 3ea05c5b5b253de33d8bf8d615c66e2935b940ef (diff) |
Allow editing a release in API via PUT method
Diffstat (limited to 'app/services/update_release_service.rb')
-rw-r--r-- | app/services/update_release_service.rb | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/app/services/update_release_service.rb b/app/services/update_release_service.rb new file mode 100644 index 00000000000..25eb13ef09a --- /dev/null +++ b/app/services/update_release_service.rb @@ -0,0 +1,29 @@ +require_relative 'base_service' + +class UpdateReleaseService < BaseService + def execute(tag_name, release_description) + + repository = project.repository + existing_tag = repository.find_tag(tag_name) + + if existing_tag + release = project.releases.find_by(tag: tag_name) + + if release + release.update_attributes(description: release_description) + + success(release) + else + error('Release does not exist', 404) + end + else + error('Tag does not exist', 404) + end + end + + def success(release) + out = super() + out[:release] = release + out + end +end |