35 lines
990 B
TypeScript
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;
|
|
}
|
|
}
|