Class: Todos::Destroy::ConfidentialIssueService
- Inherits:
-
BaseService
- Object
- BaseService
- Todos::Destroy::ConfidentialIssueService
- Defined in:
- app/services/todos/destroy/confidential_issue_service.rb
Overview
Service class for deleting todos that belongs to confidential issues. It deletes todos for users that are not at least planners, issue author or assignee.
Accepts issue_id or project_id as argument. When issue_id is passed it deletes matching todos for one confidential issue. When project_id is passed it deletes matching todos for all confidential issues of the project.
Instance Attribute Summary collapse
-
#issues ⇒ Object
readonly
Returns the value of attribute issues.
Instance Method Summary collapse
- #execute ⇒ Object
-
#initialize(issue_id: nil, project_id: nil) ⇒ ConfidentialIssueService
constructor
A new instance of ConfidentialIssueService.
Constructor Details
#initialize(issue_id: nil, project_id: nil) ⇒ ConfidentialIssueService
Returns a new instance of ConfidentialIssueService.
14 15 16 17 18 19 20 21 |
# File 'app/services/todos/destroy/confidential_issue_service.rb', line 14 def initialize(issue_id: nil, project_id: nil) @issues = if issue_id Issue.id_in(issue_id) elsif project_id project_confidential_issues(project_id) end end |
Instance Attribute Details
#issues ⇒ Object (readonly)
Returns the value of attribute issues.
12 13 14 |
# File 'app/services/todos/destroy/confidential_issue_service.rb', line 12 def issues @issues end |
Instance Method Details
#execute ⇒ Object
23 24 25 26 27 28 29 30 |
# File 'app/services/todos/destroy/confidential_issue_service.rb', line 23 def execute return unless todos_to_remove? ::Gitlab::Database.allow_cross_joins_across_databases( url: 'https://gitlab.com/gitlab-org/gitlab/-/issues/422045') do delete_todos end end |