summaryrefslogtreecommitdiff
path: root/app/services/boards/lists/move_service.rb
diff options
context:
space:
mode:
authorDouglas Barbosa Alexandre <dbalexandre@gmail.com>2016-08-16 01:07:25 -0300
committerDouglas Barbosa Alexandre <dbalexandre@gmail.com>2016-08-17 12:58:59 -0300
commitf77c47a51c8fef379b2dc9473545e53a28ec3c7f (patch)
treeb46dd6074bae6822ada612246b50101898c2f18e /app/services/boards/lists/move_service.rb
parentaffed37065974991f4c578993d34ec1608560ad9 (diff)
downloadgitlab-ce-f77c47a51c8fef379b2dc9473545e53a28ec3c7f.tar.gz
Remove lookup inside services to keep them consistent with other ones
Diffstat (limited to 'app/services/boards/lists/move_service.rb')
-rw-r--r--app/services/boards/lists/move_service.rb21
1 files changed, 7 insertions, 14 deletions
diff --git a/app/services/boards/lists/move_service.rb b/app/services/boards/lists/move_service.rb
index 1c91fed0ff4..2b2b5c3943a 100644
--- a/app/services/boards/lists/move_service.rb
+++ b/app/services/boards/lists/move_service.rb
@@ -1,35 +1,28 @@
module Boards
module Lists
class MoveService < Boards::BaseService
- def execute
+ def execute(list)
+ @old_position = list.position
+ @new_position = params[:position]
+
return false unless list.label?
return false unless valid_move?
list.with_lock do
reorder_intermediate_lists
- update_list_position
+ update_list_position(list)
end
end
private
- def list
- @list ||= board.lists.find(params[:id])
- end
+ attr_reader :old_position, :new_position
def valid_move?
new_position.present? && new_position != old_position &&
new_position >= 0 && new_position < board.lists.label.size
end
- def old_position
- @old_position ||= list.position
- end
-
- def new_position
- @new_position ||= params[:position]
- end
-
def reorder_intermediate_lists
if old_position < new_position
decrement_intermediate_lists
@@ -50,7 +43,7 @@ module Boards
.update_all('position = position + 1')
end
- def update_list_position
+ def update_list_position(list)
list.update_attribute(:position, new_position)
end
end