async getPaths()

in src/app/teamcity/teamcity-service.js [57:78]


  async getPaths(teamcityService, project) {
    const [projectResponse, buildTypeResponse] = await Promise.all([
      this.getSubProjects(teamcityService, project),
      this.getBuildTypesOfProject(teamcityService, project)
    ]);

    const projects = projectResponse.project;

    const projectMap = {};
    projects.forEach(it => (projectMap[it.id] = it));

    const paths = {};
    buildTypeResponse.buildType.forEach(buildType => {
      const path = [buildType.name];
      for (let cur = projectMap[buildType.projectId]; cur; cur = projectMap[cur.parentProjectId]) {
        path.unshift(cur.name);
      }
      paths[buildType.id] = path.join(' :: ');
    });

    return paths;
  }