diff options
author | Douglas Barbosa Alexandre <dbalexandre@gmail.com> | 2016-10-06 17:13:33 -0300 |
---|---|---|
committer | Douglas Barbosa Alexandre <dbalexandre@gmail.com> | 2016-10-11 11:39:05 -0300 |
commit | 2c2a1dea67ef41a6e283c4816865645fba318a16 (patch) | |
tree | aed3dd76703c889ae2afaf525142af74732fb686 /app | |
parent | 81c253ded12c96bfa3f5cf27f0e23c61619ad914 (diff) | |
download | gitlab-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.rb | 5 | ||||
-rw-r--r-- | app/services/boards/issues/create_service.rb | 15 |
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 |