|
|
|
@ -10,23 +10,68 @@ import { Season } from '../models/season.model'; |
|
|
|
|
|
|
|
export class SeasonsService { |
|
|
|
seasons: Season[] = []; |
|
|
|
useTestData: boolean = true; |
|
|
|
|
|
|
|
constructor(private httpClient: HttpClient) { |
|
|
|
} |
|
|
|
|
|
|
|
private convertToClientSeason(data: any): Season { |
|
|
|
let _season = new Season(); |
|
|
|
_season.id = data.id.toString(); |
|
|
|
_season.title = data.title; |
|
|
|
_season.subTitle = data.subTitle; |
|
|
|
_season.startingDate = new Date(data.startingDate); |
|
|
|
_season.racers = []; |
|
|
|
if ("races" in Object.keys(data)) { |
|
|
|
_season.races = data.races; |
|
|
|
} else { |
|
|
|
_season.races = []; |
|
|
|
} |
|
|
|
_season.standings = []; |
|
|
|
|
|
|
|
return _season; |
|
|
|
} |
|
|
|
|
|
|
|
getAllSeasons(): Observable<Array<Season>> { |
|
|
|
return this.httpClient.get<Array<Season>>("assets/Seasons.json") |
|
|
|
if(this.useTestData) { |
|
|
|
return this.httpClient.get<Array<Season>>("assets/Seasons.json"); |
|
|
|
} |
|
|
|
|
|
|
|
let promise = new Promise<Array<Season>>((resolve, reject) =>{ |
|
|
|
this.httpClient.get<Array<Season>>("http://localhost:3000/seasons/").subscribe(data => { |
|
|
|
let seasons: Season[] = []; |
|
|
|
for(let server_season of data) { |
|
|
|
let _season = this.convertToClientSeason(server_season); |
|
|
|
seasons.push(_season) |
|
|
|
console.log(_season) |
|
|
|
console.log(server_season) |
|
|
|
} |
|
|
|
resolve(seasons); |
|
|
|
//reject(undefined);
|
|
|
|
}); |
|
|
|
}); |
|
|
|
return from(promise); |
|
|
|
} |
|
|
|
|
|
|
|
getSeason(id: string): Observable<Season | undefined> { |
|
|
|
let promise = new Promise<Season|undefined>((resolve, reject) =>{ |
|
|
|
this.httpClient.get<Array<Season>>("assets/Seasons.json").subscribe(data => { |
|
|
|
for(let season of data) { |
|
|
|
if(season.id == id) { |
|
|
|
resolve(season); |
|
|
|
if(this.useTestData) { |
|
|
|
let promise = new Promise<Season|undefined>((resolve, reject) =>{ |
|
|
|
this.httpClient.get<Array<Season>>("assets/Seasons.json").subscribe(data => { |
|
|
|
for(let season of data) { |
|
|
|
if(season.id.toString() == id) { |
|
|
|
resolve(season); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
reject(undefined); |
|
|
|
reject(undefined); |
|
|
|
}); |
|
|
|
}); |
|
|
|
return from(promise); |
|
|
|
} |
|
|
|
|
|
|
|
let promise = new Promise<Season|undefined>((resolve, reject) =>{ |
|
|
|
this.httpClient.get<Array<Season>>("http://localhost:3000/seasons/"+id).subscribe(data => { |
|
|
|
let _season = this.convertToClientSeason(data); |
|
|
|
resolve(_season); |
|
|
|
}); |
|
|
|
}); |
|
|
|
return from(promise); |
|
|
|
|