123456789101112131415161718192021222324252627282930313233 |
- import {Project, Team} from 'sentry/types';
- export default function getProjectsByTeams(
- teams: Team[],
- projects: Project[],
- isSuperuser: boolean = false
- ): {projectsByTeam: {[teamSlug: string]: Project[]}; teamlessProjects: Project[]} {
- const projectsByTeam = {};
- const teamlessProjects: Project[] = [];
- let usersTeams = new Set(teams.filter(team => team.isMember).map(team => team.slug));
- if (usersTeams.size === 0 && isSuperuser) {
- usersTeams = new Set(teams.map(team => team.slug));
- }
- projects.forEach(project => {
- if (!project.teams.length && project.isMember) {
- teamlessProjects.push(project);
- } else {
- project.teams.forEach(team => {
- if (!usersTeams.has(team.slug)) {
- return;
- }
- if (!projectsByTeam.hasOwnProperty(team.slug)) {
- projectsByTeam[team.slug] = [];
- }
- projectsByTeam[team.slug].push(project);
- });
- }
- });
- return {projectsByTeam, teamlessProjects};
- }
|