diff --git a/packages/bridge-ui/src/app/services/seasons.service.ts b/packages/bridge-ui/src/app/services/seasons.service.ts index 7129dd9..93f55bd 100644 --- a/packages/bridge-ui/src/app/services/seasons.service.ts +++ b/packages/bridge-ui/src/app/services/seasons.service.ts @@ -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> { - return this.httpClient.get>("assets/Seasons.json") + if(this.useTestData) { + return this.httpClient.get>("assets/Seasons.json"); + } + + let promise = new Promise>((resolve, reject) =>{ + this.httpClient.get>("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 { - let promise = new Promise((resolve, reject) =>{ - this.httpClient.get>("assets/Seasons.json").subscribe(data => { - for(let season of data) { - if(season.id == id) { - resolve(season); + if(this.useTestData) { + let promise = new Promise((resolve, reject) =>{ + this.httpClient.get>("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((resolve, reject) =>{ + this.httpClient.get>("http://localhost:3000/seasons/"+id).subscribe(data => { + let _season = this.convertToClientSeason(data); + resolve(_season); }); }); return from(promise);