import { Injectable } from '@angular/core'; import { HttpClient, HttpHeaders } from '@angular/common/http'; import { Observable } from 'rxjs'; import { map } from 'rxjs/operators'; import { environment } from '../environments/environment'; import { DropZoneResp } from '../models/dropzone'; import { JumpResp } from '../models/jump'; import { AircraftResp } from '../models/aircraft'; import { JumpTypeResp } from '../models/jumpType'; import { GearResp } from '../models/gear'; import { StatsResp, StatsByDzResp, StatsByAircraftResp, StatsByJumpTypeResp, StatsByRigResp, StatsByYearResp } from '../models/stats'; @Injectable() export class ServiceApiGet { private readonly headers = new HttpHeaders({ 'Access-Control-Allow-Origin': environment.urlApi }); constructor(private http: HttpClient) { } public getListOfDropZones(): Observable> { return this.http .get>(`${environment.urlApi}/api/DropZone`, { headers: this.headers }) .pipe( map(response => { const details = response.map(data => new DropZoneResp(data)); return details; }) ); } public getListOfJumps(): Observable> { return this.http.get>(`${environment.urlApi}/api/Jump`, { headers: this.headers }) .pipe( map(response => { const details = response.map(data => new JumpResp(data)); return details; }) ); } public getListOfAircrafts(): Observable> { return this.http.get>( `${environment.urlApi}/api/Aircraft`, { headers: this.headers } ); } public getListOfJumpTypes(): Observable> { return this.http.get>( `${environment.urlApi}/api/JumpType`, { headers: this.headers } ); } public getListOfGears(): Observable> { return this.http.get>(`${environment.urlApi}/api/Gear`, { headers: this.headers }); } public getStatsOfJumps(): StatsResp { const resultat = new StatsResp(); resultat.statsByDz = this.http.get( `${environment.urlApi}/api/Stats/ByDz`, { headers: this.headers } ); resultat.statsByAircraft = this.http.get( `${environment.urlApi}/api/Stats/ByAircraft`, { headers: this.headers } ); resultat.statsByJumpType = this.http.get( `${environment.urlApi}/api/Stats/ByJumpType`, { headers: this.headers } ); resultat.statsByRig = this.http.get( `${environment.urlApi}/api/Stats/ByRig`, { headers: this.headers } ); resultat.statsByYear = this.http.get( `${environment.urlApi}/api/Stats/ByYear`, { headers: this.headers } ); return resultat; } }