summaryrefslogtreecommitdiff
path: root/app/services/issuable_base_service.rb
diff options
context:
space:
mode:
authorBrett Walker <bwalker@gitlab.com>2019-01-22 18:05:38 -0600
committerFatih Acet <acetfatih@gmail.com>2019-01-30 23:18:16 +0100
commitd9c5668d2915d64cbd91880e1ff1c0c743e8aa99 (patch)
tree50b2362104953265170ae25a9026c6ad102e0b0d /app/services/issuable_base_service.rb
parent6243c04e20b480c8353ac820ac4eb7ea43b92718 (diff)
downloadgitlab-ce-d9c5668d2915d64cbd91880e1ff1c0c743e8aa99.tar.gz
Refactor toggling of task list item
Diffstat (limited to 'app/services/issuable_base_service.rb')
-rw-r--r--app/services/issuable_base_service.rb32
1 files changed, 32 insertions, 0 deletions
diff --git a/app/services/issuable_base_service.rb b/app/services/issuable_base_service.rb
index 805bb5b510d..90f971faedb 100644
--- a/app/services/issuable_base_service.rb
+++ b/app/services/issuable_base_service.rb
@@ -235,6 +235,34 @@ class IssuableBaseService < BaseService
issuable
end
+ def update_task(issuable)
+ filter_params(issuable)
+ # old_associations = associations_before_update(issuable)
+ if issuable.changed? || params.present?
+ issuable.assign_attributes(params.merge(updated_by: current_user))
+ issuable.assign_attributes(last_edited_at: Time.now, last_edited_by: current_user)
+
+ before_update(issuable)
+
+ if issuable.with_transaction_returning_status { issuable.save }
+ # We do not touch as it will affect a update on updated_at field
+ ActiveRecord::Base.no_touching do
+ Issuable::CommonSystemNotesService.new(project, current_user).execute(issuable, old_labels: nil)
+ end
+
+ handle_task_changes(issuable)
+
+ invalidate_cache_counts(issuable, users: issuable.assignees.to_a)
+
+ after_update(issuable)
+
+ # execute_hooks(issuable, 'update', old_associations: old_associations)
+ end
+ end
+
+ issuable
+ end
+
def labels_changing?(old_label_ids, new_label_ids)
old_label_ids.sort != new_label_ids.sort
end
@@ -318,6 +346,10 @@ class IssuableBaseService < BaseService
end
# override if needed
+ def handle_task_changes(issuable)
+ end
+
+ # override if needed
def execute_hooks(issuable, action = 'open', params = {})
end