mtas-tv-frontend/src/app/shared/service/commit-tracker.service.ts

36 lines
1.2 KiB
TypeScript
Raw Normal View History

2018-04-06 23:01:07 +02:00
import { Injectable } from '@angular/core';
import { HttpClient, HttpParams, HttpHeaders } from '@angular/common/http';
2018-04-06 23:01:07 +02:00
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<Array<Commit>> {
private apiEndPoint = environment.commitTrackerApiUrl;
private cachedCommits: Array<Commit> = [];
constructor(private httpClient: HttpClient,
private teamService: TeamService) { }
public resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise<Array<Commit>> {
return this.getTeamCommits(this.teamService.teamMembers).toPromise();
}
public getTeamCommits(signums: Array<String>): Observable<Array<Commit>> {
const params = new HttpParams().set('json_signums', JSON.stringify(signums));
return this.httpClient.get<Array<Commit>>(this.apiEndPoint, {params});
2018-04-06 23:01:07 +02:00
}
get commits(): Array<Commit> {
return this.cachedCommits;
}
set commits(commits: Array<Commit>) {
this.cachedCommits = commits;
}
}