diff options
Diffstat (limited to 'app/services/merge_requests/remove_attention_requested_service.rb')
-rw-r--r-- | app/services/merge_requests/remove_attention_requested_service.rb | 50 |
1 files changed, 0 insertions, 50 deletions
diff --git a/app/services/merge_requests/remove_attention_requested_service.rb b/app/services/merge_requests/remove_attention_requested_service.rb deleted file mode 100644 index 8a410fda691..00000000000 --- a/app/services/merge_requests/remove_attention_requested_service.rb +++ /dev/null @@ -1,50 +0,0 @@ -# frozen_string_literal: true - -module MergeRequests - class RemoveAttentionRequestedService < MergeRequests::BaseService - attr_accessor :merge_request, :user - - def initialize(project:, current_user:, merge_request:, user:) - super(project: project, current_user: current_user) - - @merge_request = merge_request - @user = user - end - - def execute - return error("Invalid permissions") unless can?(current_user, :update_merge_request, merge_request) - - if reviewer || assignee - return success if reviewer&.reviewed? || assignee&.reviewed? - - update_state(reviewer) - update_state(assignee) - - user.invalidate_attention_requested_count - create_remove_attention_request_note - - success - else - error("User is not a reviewer or assignee of the merge request") - end - end - - private - - def assignee - @assignee ||= merge_request.find_assignee(user) - end - - def reviewer - @reviewer ||= merge_request.find_reviewer(user) - end - - def update_state(reviewer_or_assignee) - reviewer_or_assignee&.update(state: :reviewed) - end - - def create_remove_attention_request_note - SystemNoteService.remove_attention_request(merge_request, merge_request.project, current_user, user) - end - end -end |