mtas-tv-frontend/src/app/shared/service/commit-tracker.service.ts
Dávid Danyi b0cbd691d5 * Result.BUILDING added
* team editor is mostly done
* commit tracker works and is styled
* added new components for slide editor, still empty
* team resolver service
2018-04-09 18:41:53 +02:00

36 lines
1.2 KiB
TypeScript

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<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});
}
get commits(): Array<Commit> {
return this.cachedCommits;
}
set commits(commits: Array<Commit>) {
this.cachedCommits = commits;
}
}