2018-05-11 10:46:27 +02:00

35 lines
990 B
TypeScript

import { Injectable } from '@angular/core';
import { ActivatedRouteSnapshot, Resolve, RouterStateSnapshot } from "@angular/router";
import { HttpClient } from "@angular/common/http";
import { Judge } from "./judge";
import { environment } from '../../environments/environment';
import { Observable } from "rxjs/internal/Observable";
@Injectable({
providedIn: 'root'
})
export class JudgeService implements Resolve<Array<Judge>> {
private apiEndPoint = `${environment.apiUrl}/judge`;
private cachedJudges: Array<Judge> = [];
constructor(private httpClient: HttpClient) {}
public resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise<Array<Judge>> {
return this.getJudges().toPromise();
}
public getJudges(): Observable<Array<Judge>> {
return this.httpClient.get<Array<Judge>>(this.apiEndPoint);
}
get judges(): Array<Judge> {
return this.cachedJudges;
}
set judges(judges: Array<Judge>) {
this.cachedJudges = judges;
}
}