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> { private apiEndPoint = `${environment.apiUrl}/judge`; private cachedJudges: Array = []; constructor(private httpClient: HttpClient) {} public resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise> { return this.getJudges().toPromise(); } public getJudges(): Observable> { return this.httpClient.get>(this.apiEndPoint); } get judges(): Array { return this.cachedJudges; } set judges(judges: Array) { this.cachedJudges = judges; } }