diff options
Diffstat (limited to 'app/services/projects/participants_service.rb')
-rw-r--r-- | app/services/projects/participants_service.rb | 50 |
1 files changed, 0 insertions, 50 deletions
diff --git a/app/services/projects/participants_service.rb b/app/services/projects/participants_service.rb deleted file mode 100644 index ae6260bcdab..00000000000 --- a/app/services/projects/participants_service.rb +++ /dev/null @@ -1,50 +0,0 @@ -module Projects - class ParticipantsService < BaseService - def execute(note_type, note_id) - participating = - if note_type && note_id - participants_in(note_type, note_id) - else - [] - end - project_members = sorted(project.team.members) - participants = all_members + groups + project_members + participating - participants.uniq - end - - def participants_in(type, id) - users = case type - when "Issue" - issue = project.issues.find_by_iid(id) - issue ? issue.participants(current_user) : [] - when "MergeRequest" - merge_request = project.merge_requests.find_by_iid(id) - merge_request ? merge_request.participants(current_user) : [] - when "Commit" - author_ids = Note.for_commit_id(id).pluck(:author_id).uniq - User.where(id: author_ids) - else - [] - end - sorted(users) - end - - def sorted(users) - users.uniq.to_a.compact.sort_by(&:username).map do |user| - { username: user.username, name: user.name } - end - end - - def groups - current_user.authorized_groups.sort_by(&:path).map do |group| - count = group.users.count - { username: group.path, name: "#{group.name} (#{count})" } - end - end - - def all_members - count = project.team.members.flatten.count - [{ username: "all", name: "All Project and Group Members (#{count})" }] - end - end -end |