You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
33 lines
807 B
33 lines
807 B
|
2 years ago
|
import { Injectable } from '@angular/core';
|
||
|
|
import { HttpClient } from "@angular/common/http";
|
||
|
|
import { Observable, from } from "rxjs";
|
||
|
|
|
||
|
|
import { Race } from '../models/race.model';
|
||
|
|
|
||
|
|
@Injectable({
|
||
|
|
providedIn: 'root'
|
||
|
|
})
|
||
|
|
export class RacesService {
|
||
|
|
|
||
|
|
constructor(private httpClient: HttpClient) {
|
||
|
|
}
|
||
|
|
|
||
|
|
getAllRaces(): Observable<Array<Race>> {
|
||
|
|
return this.httpClient.get<Array<Race>>("assets/races.json");
|
||
|
|
}
|
||
|
|
|
||
|
|
getRace(id: string): Observable<Race | undefined> {
|
||
|
|
let promise = new Promise<Race|undefined>((resolve, reject) => {
|
||
|
|
this.httpClient.get<Array<Race>>("assets/race.json").subscribe(data => {
|
||
|
|
for(let race of data) {
|
||
|
|
if(race.id == id) {
|
||
|
|
resolve(race);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
reject(undefined);
|
||
|
|
});
|
||
|
|
});
|
||
|
|
return from(promise);
|
||
|
|
}
|
||
|
|
}
|