картирование объектов из jira rest api - PullRequest
0 голосов
/ 17 декабря 2018

Я пытаюсь создать пользовательскую панель управления jira.

Мое требование - извлечь все issues из текущего спринта и категории в Open, In Progress & Closed.

Чтобы получить все спринты проекта - API

https://host.com/rest/greenhopper/1.0/sprintquery/PROJECTID?

Я использовал приведенный ниже API для получения всех проблем.(Нет ничего лучше API для извлечения)

https://host.com/rest/greenhopper/1.0/sprintquery/ACTIVESPRINTID?includeFutureSprints=false&includeHistoricSprints=true&os_username=USERNAME&os_password=PASSWORD

Теперь я хотел отобразить эти детали в barChart, используя ng2-charts.

Ниже мой код.

      cardsData = [
      { title: 'X', item: 'x', id: '22407' },
      { title: 'Y', item: 'y', id: '21756' },
    ];
  ngOnInit() {
    this.cardsData.map(x => {
      if (x.id) {
        this.lineChartLabels.push(x.title);
        this.getActiveSprint(x.id);
      }
    });
}

  getActiveSprint(id) {
    this.service.getActiveSprintID(id).subscribe(response => {
      const activeSprintID = response.sprints.slice(-1)[0].id;
      this.getJiraItems(id, activeSprintID);
      this.cardsData.filter((status) => {
        return status.id === id;
      }).map(x => x['activeSprintID'] = activeSprintID);
    });
  }

  getJiraItems(RapidViewID: string, SprintID: string) {
    this.httpSubscription = this.service.getJiraOpenIssues(RapidViewID, SprintID)
      .subscribe((response) => {
        const issuesNotCompletedInCurrentSprint = response.contents.issuesNotCompletedInCurrentSprint;
        const completedIssues = response.contents.completedIssues.length;
        const openIssue = [];
        const inProgressIssue = [];
        this.lineData.push(completedIssues);

        issuesNotCompletedInCurrentSprint.filter((item) => {
          if (item.statusId === '1') {
            openIssue.push(item);
          } else if (item.statusId === '3') {
            inProgressIssue.push(item);
          }
        });

        this.totalOpenIssue.push(openIssue.length);
        this.totalInprogressIssue.push(inProgressIssue.length);

        this.pieChartData = [openIssue.length, inProgressIssue.length, completedIssues];

        this.cardsData.filter((status) => {
          return status.title === 'JIRA OVERVIEW';
        }).map(x => x['lineChartData'] = [
          { data: this.totalOpenIssue, label: 'Open' },
          { data: this.totalInprogressIssue, label: 'InProgress' },
          { data: this.lineData, label: 'Completed' }
        ]);

        this.cardsData.filter((status) => {
          return status.id === RapidViewID;
        }).map(x => x['pieChartData'] = this.pieChartData);
        this.isLoading = false;
      });
  }

Проблема в том, что данные не отображаются правильно для open или in progress элементов, которые также получили комментарии к комментариям, оставаясь illegal use of map property.

Пожалуйста, помогите мне исправить мой код и удалить ненужные строки.

...