Class: MergeRequests::ResolveTodosAfterApprovalWorker

Inherits:
Object
  • Object
show all
Includes:
Gitlab::EventStore::Subscriber
Defined in:
app/workers/merge_requests/resolve_todos_after_approval_worker.rb

Instance Method Summary collapse

Methods included from Gitlab::EventStore::Subscriber

#perform

Instance Method Details

#handle_event(event) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'app/workers/merge_requests/resolve_todos_after_approval_worker.rb', line 12

def handle_event(event)
  current_user_id = event.data[:current_user_id]
  merge_request_id = event.data[:merge_request_id]
  current_user = User.find_by_id(current_user_id)

  unless current_user
    logger.info(structured_payload(message: 'Current user not found.', current_user_id: current_user_id))
    return
  end

  merge_request = MergeRequest.find_by_id(merge_request_id)

  unless merge_request
    logger.info(structured_payload(message: 'Merge request not found.', merge_request_id: merge_request_id))
    return
  end

  TodoService.new.resolve_todos_for_target(merge_request, current_user)
end