import { Injectable } from '@angular/core'; import { HttpClient, HttpParams, HttpHeaders } from '@angular/common/http'; import { ActivatedRouteSnapshot, Resolve, RouterStateSnapshot } from '@angular/router'; import { Observable } from 'rxjs/Observable'; import { environment } from '../../../environments/environment'; import { Commit } from '../commit'; import { TeamService } from './team.service'; @Injectable() export class CommitTrackerService implements Resolve> { private apiEndPoint = environment.commitTrackerApiUrl; private cachedCommits: Array = []; constructor(private httpClient: HttpClient, private teamService: TeamService) { } public resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise> { return this.getTeamCommits(this.teamService.teamMembers).toPromise(); } public getTeamCommits(signums: Array): Observable> { const params = new HttpParams().set('json_signums', JSON.stringify(signums)); return this.httpClient.get>(this.apiEndPoint, {params}); } get commits(): Array { return this.cachedCommits; } set commits(commits: Array) { this.cachedCommits = commits; } }