diff options
author | Douglas Barbosa Alexandre <dbalexandre@gmail.com> | 2016-08-03 03:49:26 +0300 |
---|---|---|
committer | Douglas Barbosa Alexandre <dbalexandre@gmail.com> | 2016-08-17 18:58:58 +0300 |
commit | aff7a2ef55b317b3e5c8d83f4e9ae9fc64f4fa8f (patch) | |
tree | 14f770901b7206e3d07849e902845086505753a8 /app/services/boards | |
parent | 296bcbd6640ddeb06093c2505ed749be07362975 (diff) |
Extract base service class for boards related services
Diffstat (limited to 'app/services/boards')
-rw-r--r-- | app/services/boards/base_service.rb | 14 | ||||
-rw-r--r-- | app/services/boards/create_service.rb | 8 | ||||
-rw-r--r-- | app/services/boards/issues/list_service.rb | 12 | ||||
-rw-r--r-- | app/services/boards/issues/move_service.rb | 12 | ||||
-rw-r--r-- | app/services/boards/lists/create_service.rb | 9 | ||||
-rw-r--r-- | app/services/boards/lists/destroy_service.rb | 9 | ||||
-rw-r--r-- | app/services/boards/lists/move_service.rb | 9 |
7 files changed, 20 insertions, 53 deletions
diff --git a/app/services/boards/base_service.rb b/app/services/boards/base_service.rb new file mode 100644 index 00000000000..e2d2bdfe3d7 --- /dev/null +++ b/app/services/boards/base_service.rb @@ -0,0 +1,14 @@ +module Boards + class BaseService + def initialize(project, user, params = {}) + @project = project + @board = project.board + @user = user + @params = params.dup + end + + private + + attr_reader :project, :board, :user, :params + end +end diff --git a/app/services/boards/create_service.rb b/app/services/boards/create_service.rb index f1eef870925..5881752dabd 100644 --- a/app/services/boards/create_service.rb +++ b/app/services/boards/create_service.rb @@ -1,9 +1,5 @@ module Boards - class CreateService - def initialize(project) - @project = project - end - + class CreateService < BaseService def execute create_board! unless project.board.present? project.board @@ -11,8 +7,6 @@ module Boards private - attr_reader :project - def create_board! project.create_board project.board.lists.create(list_type: :backlog) diff --git a/app/services/boards/issues/list_service.rb b/app/services/boards/issues/list_service.rb index 4948ab3a140..221fea716f7 100644 --- a/app/services/boards/issues/list_service.rb +++ b/app/services/boards/issues/list_service.rb @@ -1,12 +1,6 @@ module Boards module Issues - class ListService - def initialize(project, user, params = {}) - @project = project - @user = user - @params = params.dup - end - + class ListService < Boards::BaseService def execute issues = IssuesFinder.new(user, filter_params).execute issues = without_board_labels(issues) if list.backlog? @@ -15,10 +9,6 @@ module Boards private - attr_reader :project, :user, :params - - delegate :board, to: :project - def list @list ||= board.lists.find(params[:list_id]) end diff --git a/app/services/boards/issues/move_service.rb b/app/services/boards/issues/move_service.rb index 7daa4d31efd..7d08ef5b6c7 100644 --- a/app/services/boards/issues/move_service.rb +++ b/app/services/boards/issues/move_service.rb @@ -1,12 +1,6 @@ module Boards module Issues - class MoveService - def initialize(project, user, params = {}) - @project = project - @user = user - @params = params.dup - end - + class MoveService < Boards::BaseService def execute return false unless issue.present? return false unless user.can?(:update_issue, issue) @@ -20,10 +14,6 @@ module Boards private - attr_reader :project, :user, :params - - delegate :board, to: :project - def issue @issue ||= project.issues.visible_to_user(user).find_by!(iid: params[:id]) end diff --git a/app/services/boards/lists/create_service.rb b/app/services/boards/lists/create_service.rb index 151bb67bea1..59e8b51e37f 100644 --- a/app/services/boards/lists/create_service.rb +++ b/app/services/boards/lists/create_service.rb @@ -1,11 +1,6 @@ module Boards module Lists - class CreateService - def initialize(project, params = {}) - @board = project.board - @params = params.dup - end - + class CreateService < Boards::BaseService def execute List.transaction do position = find_next_position @@ -16,8 +11,6 @@ module Boards private - attr_reader :board, :params - def find_next_position board.lists.label.maximum(:position).to_i + 1 end diff --git a/app/services/boards/lists/destroy_service.rb b/app/services/boards/lists/destroy_service.rb index 5402d009c08..8d244fa3966 100644 --- a/app/services/boards/lists/destroy_service.rb +++ b/app/services/boards/lists/destroy_service.rb @@ -1,11 +1,6 @@ module Boards module Lists - class DestroyService - def initialize(project, params = {}) - @board = project.board - @params = params.dup - end - + class DestroyService < Boards::BaseService def execute return false unless list.label? @@ -17,8 +12,6 @@ module Boards private - attr_reader :board, :params - def list @list ||= board.lists.find(params[:id]) end diff --git a/app/services/boards/lists/move_service.rb b/app/services/boards/lists/move_service.rb index f5735b6bab1..9bd07f43a36 100644 --- a/app/services/boards/lists/move_service.rb +++ b/app/services/boards/lists/move_service.rb @@ -1,11 +1,6 @@ module Boards module Lists - class MoveService - def initialize(project, params = {}) - @board = project.board - @params = params.dup - end - + class MoveService < Boards::BaseService def execute return false unless list.label? return false unless valid_move? @@ -18,8 +13,6 @@ module Boards private - attr_reader :board, :params - def list @list ||= board.lists.find(params[:id]) end |