diff options
Diffstat (limited to 'app/services/quick_actions/target_service.rb')
-rw-r--r-- | app/services/quick_actions/target_service.rb | 32 |
1 files changed, 20 insertions, 12 deletions
diff --git a/app/services/quick_actions/target_service.rb b/app/services/quick_actions/target_service.rb index 6eda3c89e6c..04ae5287302 100644 --- a/app/services/quick_actions/target_service.rb +++ b/app/services/quick_actions/target_service.rb @@ -2,37 +2,45 @@ module QuickActions class TargetService < BaseService - def execute(type, type_id) + def execute(type, type_iid) case type&.downcase + when 'workitem' + work_item(type_iid) when 'issue' - issue(type_id) + issue(type_iid) when 'mergerequest' - merge_request(type_id) + merge_request(type_iid) when 'commit' - commit(type_id) + commit(type_iid) end end private # rubocop: disable CodeReuse/ActiveRecord - def issue(type_id) - return project.issues.build if type_id.nil? + def work_item(type_iid) + WorkItems::WorkItemsFinder.new(current_user, project_id: project.id).find_by(iid: type_iid) + end + # rubocop: enable CodeReuse/ActiveRecord + + # rubocop: disable CodeReuse/ActiveRecord + def issue(type_iid) + return project.issues.build if type_iid.nil? - IssuesFinder.new(current_user, project_id: project.id).find_by(iid: type_id) || project.issues.build + IssuesFinder.new(current_user, project_id: project.id).find_by(iid: type_iid) || project.issues.build end # rubocop: enable CodeReuse/ActiveRecord # rubocop: disable CodeReuse/ActiveRecord - def merge_request(type_id) - return project.merge_requests.build if type_id.nil? + def merge_request(type_iid) + return project.merge_requests.build if type_iid.nil? - MergeRequestsFinder.new(current_user, project_id: project.id).find_by(iid: type_id) || project.merge_requests.build + MergeRequestsFinder.new(current_user, project_id: project.id).find_by(iid: type_iid) || project.merge_requests.build end # rubocop: enable CodeReuse/ActiveRecord - def commit(type_id) - project.commit(type_id) + def commit(type_iid) + project.commit(type_iid) end end end |