summaryrefslogtreecommitdiff
path: root/lib/api/issues.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/api/issues.rb')
-rw-r--r--lib/api/issues.rb30
1 files changed, 9 insertions, 21 deletions
diff --git a/lib/api/issues.rb b/lib/api/issues.rb
index 4cfa7500e33..4ee2d11f15f 100644
--- a/lib/api/issues.rb
+++ b/lib/api/issues.rb
@@ -48,19 +48,14 @@ module Gitlab
# Example Request:
# POST /projects/:id/issues
post ":id/issues" do
- @issue = user_project.issues.new(
- title: params[:title],
- description: params[:description],
- assignee_id: params[:assignee_id],
- milestone_id: params[:milestone_id],
- label_list: params[:labels]
- )
+ attrs = attributes_for_keys [:title, :description, :assignee_id, :milestone_id]
+ attrs[:label_list] = params[:labels] if params[:labels].present?
+ @issue = user_project.issues.new attrs
@issue.author = current_user
-
if @issue.save
present @issue, with: Entities::Issue
else
- error!({'message' => '404 Not found'}, 404)
+ not_found!
end
end
@@ -81,19 +76,12 @@ module Gitlab
@issue = user_project.issues.find(params[:issue_id])
authorize! :modify_issue, @issue
- parameters = {
- title: (params[:title] || @issue.title),
- description: (params[:description] || @issue.description),
- assignee_id: (params[:assignee_id] || @issue.assignee_id),
- milestone_id: (params[:milestone_id] || @issue.milestone_id),
- label_list: (params[:labels] || @issue.label_list),
- closed: (params[:closed] || @issue.closed)
- }
-
- if @issue.update_attributes(parameters)
+ attrs = attributes_for_keys [:title, :description, :assignee_id, :milestone_id, :closed]
+ attrs[:label_list] = params[:labels] if params[:labels].present?
+ if @issue.update_attributes attrs
present @issue, with: Entities::Issue
else
- error!({'message' => '404 Not found'}, 404)
+ not_found!
end
end
@@ -105,7 +93,7 @@ module Gitlab
# Example Request:
# DELETE /projects/:id/issues/:issue_id
delete ":id/issues/:issue_id" do
- error!({'message' => 'method not allowed'}, 405)
+ not_allowed!
end
end
end