* team editor is mostly done * commit tracker works and is styled * added new components for slide editor, still empty * team resolver service
36 lines
1.2 KiB
TypeScript
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;
|
|
}
|
|
}
|