Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Schilling <rschilling@student.tugraz.at>2015-11-22 00:34:53 +0300
committerRobert Schilling <rschilling@student.tugraz.at>2015-11-22 00:34:53 +0300
commit04a3d27eaba0312d99e8d88a3a9ee4b5c83ecce1 (patch)
tree76edf025912fa34c1942f98deefb406148953842 /app/services/update_release_service.rb
parent3ea05c5b5b253de33d8bf8d615c66e2935b940ef (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.rb29
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