summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorDouglas Barbosa Alexandre <dbalexandre@gmail.com>2016-10-06 17:13:33 -0300
committerDouglas Barbosa Alexandre <dbalexandre@gmail.com>2016-10-11 11:39:05 -0300
commit2c2a1dea67ef41a6e283c4816865645fba318a16 (patch)
treeaed3dd76703c889ae2afaf525142af74732fb686 /app
parent81c253ded12c96bfa3f5cf27f0e23c61619ad914 (diff)
downloadgitlab-ce-2c2a1dea67ef41a6e283c4816865645fba318a16.tar.gz
Refactoring service to create a new issue in a board list
Diffstat (limited to 'app')
-rw-r--r--app/controllers/projects/boards/issues_controller.rb5
-rw-r--r--app/services/boards/issues/create_service.rb15
2 files changed, 13 insertions, 7 deletions
diff --git a/app/controllers/projects/boards/issues_controller.rb b/app/controllers/projects/boards/issues_controller.rb
index 82c99e4e8d9..71eb56aed0b 100644
--- a/app/controllers/projects/boards/issues_controller.rb
+++ b/app/controllers/projects/boards/issues_controller.rb
@@ -16,9 +16,8 @@ module Projects
end
def create
- list = project.board.lists.find(params[:list_id])
service = ::Boards::Issues::CreateService.new(project, current_user, issue_params)
- issue = service.execute(list)
+ issue = service.execute
if issue.valid?
render json: serialize_as_json(issue)
@@ -68,7 +67,7 @@ module Projects
end
def issue_params
- params.require(:issue).permit(:title).merge(request: request)
+ params.require(:issue).permit(:title).merge(board_id: params[:board_id], list_id: params[:list_id], request: request)
end
def serialize_as_json(resource)
diff --git a/app/services/boards/issues/create_service.rb b/app/services/boards/issues/create_service.rb
index 3701afd441f..a181e74043b 100644
--- a/app/services/boards/issues/create_service.rb
+++ b/app/services/boards/issues/create_service.rb
@@ -1,14 +1,21 @@
module Boards
module Issues
class CreateService < Boards::BaseService
- def execute(list)
- params.merge!(label_ids: [list.label_id])
- create_issue
+ def execute
+ create_issue(params.merge(label_ids: [list.label_id]))
end
private
- def create_issue
+ def board
+ @board ||= project.boards.find(params.delete(:board_id))
+ end
+
+ def list
+ @list ||= board.lists.find(params.delete(:list_id))
+ end
+
+ def create_issue(params)
::Issues::CreateService.new(project, current_user, params).execute
end
end