From 9dbabba5a29cdc311ac33c7196b05e8d6c5076a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Andr=C3=A9?= Date: Tue, 28 Jan 2020 17:25:26 +0100 Subject: [PATCH] =?UTF-8?q?D=C3=A9coupage=20en=201=20service=20par=20compo?= =?UTF-8?q?sant?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Front/skydivelogs-app/src/app/app.module.ts | 20 ++-- .../list-of-aircrafts.component.ts | 4 +- .../app/list-of-dzs/list-of-dzs.component.ts | 12 +-- .../list-of-gears/list-of-gears.component.ts | 4 +- .../list-of-jump-types.component.ts | 4 +- .../list-of-jumps/list-of-jumps.component.ts | 4 +- .../new-aircraft/new-aircraft.component.ts | 6 +- .../src/app/new-gear/new-gear.component.ts | 6 +- .../src/app/new-jump/new-jump.component.ts | 26 +++-- .../src/app/summary/summary.component.ts | 4 +- .../src/services/aircraft.service.ts | 35 +++++++ ...api-put.service.ts => dropzone.service.ts} | 23 ++++- .../src/services/gear.service.ts | 47 +++++++++ .../src/services/jump-type.service.ts | 21 ++++ ...ce-api-post.service.ts => jump.service.ts} | 61 ++++-------- .../src/services/service-api-get.service.ts | 99 ------------------- .../src/services/stats.service.ts | 47 +++++++++ 17 files changed, 237 insertions(+), 186 deletions(-) create mode 100644 Front/skydivelogs-app/src/services/aircraft.service.ts rename Front/skydivelogs-app/src/services/{service-api-put.service.ts => dropzone.service.ts} (65%) create mode 100644 Front/skydivelogs-app/src/services/gear.service.ts create mode 100644 Front/skydivelogs-app/src/services/jump-type.service.ts rename Front/skydivelogs-app/src/services/{service-api-post.service.ts => jump.service.ts} (70%) delete mode 100644 Front/skydivelogs-app/src/services/service-api-get.service.ts create mode 100644 Front/skydivelogs-app/src/services/stats.service.ts diff --git a/Front/skydivelogs-app/src/app/app.module.ts b/Front/skydivelogs-app/src/app/app.module.ts index 370e34f..00c988d 100644 --- a/Front/skydivelogs-app/src/app/app.module.ts +++ b/Front/skydivelogs-app/src/app/app.module.ts @@ -19,10 +19,15 @@ import { NewJumpTypeComponent } from './new-jump-type/new-jump-type.component'; import { DefaultComponent } from './default/default.component'; import { DateService } from '../services/date.service'; -import { ServiceApiPut } from '../services/service-api-put.service'; -import { ServiceApiGet } from '../services/service-api-get.service'; -import { ServiceApiPost } from '../services/service-api-post.service'; + +import { AircraftService } from '../services/aircraft.service'; +import { DropzoneService } from '../services/dropzone.service'; +import { GearService } from '../services/gear.service'; +import { JumpService } from '../services/jump.service'; +import { JumpTypeService } from '../services/jump-type.service'; +import { StatsService } from '../services/stats.service'; import { ServiceComm } from '../services/service-comm.service'; + import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; import { FormsModule, ReactiveFormsModule } from '@angular/forms'; import { @@ -96,9 +101,12 @@ const appRoutes: Routes = [ ], exports: [HttpClientModule], providers: [ - ServiceApiPut, - ServiceApiPost, - ServiceApiGet, + AircraftService, + DropzoneService, + GearService, + JumpService, + JumpTypeService, + StatsService, ServiceComm, DateService, RequestCache, diff --git a/Front/skydivelogs-app/src/app/list-of-aircrafts/list-of-aircrafts.component.ts b/Front/skydivelogs-app/src/app/list-of-aircrafts/list-of-aircrafts.component.ts index 0fb90ec..a70b740 100644 --- a/Front/skydivelogs-app/src/app/list-of-aircrafts/list-of-aircrafts.component.ts +++ b/Front/skydivelogs-app/src/app/list-of-aircrafts/list-of-aircrafts.component.ts @@ -3,7 +3,7 @@ import { MatPaginator } from '@angular/material/paginator'; import { MatTableDataSource } from '@angular/material/table'; import { AircraftResp } from '../../models/aircraft'; -import { ServiceApiGet } from '../../services/service-api-get.service'; +import { AircraftService } from '../../services/aircraft.service'; import { ServiceComm } from '../../services/service-comm.service'; @Component({ @@ -19,7 +19,7 @@ export class ListOfAircraftsComponent implements OnInit { public showAddForm: boolean; constructor( - private serviceApi: ServiceApiGet, + private serviceApi: AircraftService, private serviceComm: ServiceComm ) { } diff --git a/Front/skydivelogs-app/src/app/list-of-dzs/list-of-dzs.component.ts b/Front/skydivelogs-app/src/app/list-of-dzs/list-of-dzs.component.ts index 28e4c39..bbde394 100644 --- a/Front/skydivelogs-app/src/app/list-of-dzs/list-of-dzs.component.ts +++ b/Front/skydivelogs-app/src/app/list-of-dzs/list-of-dzs.component.ts @@ -3,8 +3,7 @@ import { MatPaginator } from '@angular/material/paginator'; import { MatTableDataSource } from '@angular/material/table'; import { DropZoneResp } from '../../models/dropzone'; -import { ServiceApiGet } from '../../services/service-api-get.service'; -import { ServiceApiPut } from '../../services/service-api-put.service'; +import { DropzoneService } from '../../services/dropzone.service'; import { ServiceComm } from '../../services/service-comm.service'; @Component({ @@ -29,8 +28,7 @@ export class ListOfDzsComponent implements OnInit { public showAddForm: boolean; constructor( - private serviceApiGet: ServiceApiGet, - private serviceApiPut: ServiceApiPut, + private serviceApi: DropzoneService, private serviceComm: ServiceComm ) { } @@ -40,7 +38,7 @@ export class ListOfDzsComponent implements OnInit { } private getListOfDropZones() { - this.serviceApiGet.getListOfDropZones().subscribe(data => { + this.serviceApi.getListOfDropZones().subscribe(data => { setTimeout(() => { data.sort((a, b) => (b.isFavorite ? 1 : 0) - (a.isFavorite ? 1 : 0)); this.dataSourceTable = new MatTableDataSource(data); @@ -51,11 +49,11 @@ export class ListOfDzsComponent implements OnInit { } public setToFavorite(dropzone: DropZoneResp) { - dropzone.isFavorite = this.serviceApiPut.SetFavoriteDropZone(dropzone); + dropzone.isFavorite = this.serviceApi.SetFavoriteDropZone(dropzone); } public removeToFavorite(dropzone: DropZoneResp) { - dropzone.isFavorite = this.serviceApiPut.RemoveFavoriteDropZone(dropzone); + dropzone.isFavorite = this.serviceApi.RemoveFavoriteDropZone(dropzone); } public add() { diff --git a/Front/skydivelogs-app/src/app/list-of-gears/list-of-gears.component.ts b/Front/skydivelogs-app/src/app/list-of-gears/list-of-gears.component.ts index 14ab889..db61fca 100644 --- a/Front/skydivelogs-app/src/app/list-of-gears/list-of-gears.component.ts +++ b/Front/skydivelogs-app/src/app/list-of-gears/list-of-gears.component.ts @@ -1,7 +1,7 @@ import { Component, OnInit, ViewChild } from '@angular/core'; import { MatPaginator, MatTableDataSource } from '@angular/material'; -import { ServiceApiGet } from '../../services/service-api-get.service'; +import { GearService } from '../../services/gear.service'; import { ServiceComm } from '../../services/service-comm.service'; import { GearResp } from '../../models/gear'; import { AddAction } from '../../models/add-action.enum'; @@ -27,7 +27,7 @@ export class ListOfGearsComponent implements OnInit { public showAddForm: boolean; constructor( - private serviceApi: ServiceApiGet, + private serviceApi: GearService, private serviceComm: ServiceComm ) { } diff --git a/Front/skydivelogs-app/src/app/list-of-jump-types/list-of-jump-types.component.ts b/Front/skydivelogs-app/src/app/list-of-jump-types/list-of-jump-types.component.ts index fa4bd0f..c3f9e65 100644 --- a/Front/skydivelogs-app/src/app/list-of-jump-types/list-of-jump-types.component.ts +++ b/Front/skydivelogs-app/src/app/list-of-jump-types/list-of-jump-types.component.ts @@ -3,7 +3,7 @@ import { MatPaginator } from '@angular/material/paginator'; import { MatTableDataSource } from '@angular/material/table'; import { JumpTypeResp } from '../../models/jumpType'; -import { ServiceApiGet } from '../../services/service-api-get.service'; +import { JumpTypeService } from '../../services/jump-type.service'; import { ServiceComm } from '../../services/service-comm.service'; @Component({ @@ -19,7 +19,7 @@ export class ListOfJumpTypesComponent implements OnInit { public showAddForm: boolean; constructor( - private serviceApi: ServiceApiGet, + private serviceApi: JumpTypeService, private serviceComm: ServiceComm ) { } diff --git a/Front/skydivelogs-app/src/app/list-of-jumps/list-of-jumps.component.ts b/Front/skydivelogs-app/src/app/list-of-jumps/list-of-jumps.component.ts index fb3898e..3c43a97 100644 --- a/Front/skydivelogs-app/src/app/list-of-jumps/list-of-jumps.component.ts +++ b/Front/skydivelogs-app/src/app/list-of-jumps/list-of-jumps.component.ts @@ -4,7 +4,7 @@ import { MatTableDataSource } from '@angular/material/table'; import { Observable } from 'rxjs'; import { JumpResp } from '../../models/jump'; -import { ServiceApiGet } from '../../services/service-api-get.service'; +import { JumpService } from '../../services/jump.service'; import { ServiceComm } from '../../services/service-comm.service'; @Component({ @@ -27,7 +27,7 @@ export class ListOfJumpsComponent implements OnInit { @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator; constructor( - private serviceApi: ServiceApiGet, + private serviceApi: JumpService, private serviceComm: ServiceComm ) { } diff --git a/Front/skydivelogs-app/src/app/new-aircraft/new-aircraft.component.ts b/Front/skydivelogs-app/src/app/new-aircraft/new-aircraft.component.ts index 378acdf..fc31948 100644 --- a/Front/skydivelogs-app/src/app/new-aircraft/new-aircraft.component.ts +++ b/Front/skydivelogs-app/src/app/new-aircraft/new-aircraft.component.ts @@ -1,6 +1,6 @@ import { Component, OnInit } from '@angular/core'; import { FormControl, FormGroup, Validators } from '@angular/forms'; -import { ServiceApiPost } from '../../services/service-api-post.service'; +import { AircraftService } from '../../services/aircraft.service'; import { ServiceComm } from '../../services/service-comm.service'; import { AddAction } from '../../models/add-action.enum'; @@ -14,7 +14,7 @@ export class NewAircraftComponent implements OnInit { public addForm: FormGroup; constructor(private serviceComm: ServiceComm, - private serviceApiPost: ServiceApiPost) { + private serviceApi: AircraftService) { this.addForm = new FormGroup({ aircraftName: new FormControl('', Validators.required) }); @@ -24,7 +24,7 @@ export class NewAircraftComponent implements OnInit { } onSubmit(formData) { - this.serviceApiPost.AddAircraft(formData.value.aircraftName); + this.serviceApi.AddAircraft(formData.value.aircraftName); this.serviceComm.RefreshData(AddAction.Aircraft); this.addForm.reset(); diff --git a/Front/skydivelogs-app/src/app/new-gear/new-gear.component.ts b/Front/skydivelogs-app/src/app/new-gear/new-gear.component.ts index bacdf42..15d09a0 100644 --- a/Front/skydivelogs-app/src/app/new-gear/new-gear.component.ts +++ b/Front/skydivelogs-app/src/app/new-gear/new-gear.component.ts @@ -2,7 +2,7 @@ import { Component, OnInit } from '@angular/core'; import { FormControl, FormGroup, Validators } from '@angular/forms'; import { ServiceComm } from '../../services/service-comm.service'; -import { ServiceApiPost } from '../../services/service-api-post.service'; +import { GearService } from '../../services/gear.service'; import { AddAction } from '../../models/add-action.enum'; @@ -14,7 +14,7 @@ import { AddAction } from '../../models/add-action.enum'; export class NewGearComponent implements OnInit { public addForm: FormGroup; - constructor(private serviceComm: ServiceComm, private servicePost: ServiceApiPost) { + constructor(private serviceComm: ServiceComm, private serviceApi: GearService) { this.addForm = new FormGroup({ name: new FormControl('', Validators.required), manufacturer: new FormControl('', Validators.required), @@ -30,7 +30,7 @@ export class NewGearComponent implements OnInit { } onSubmit(formData) { - this.servicePost.AddGear( + this.serviceApi.AddGear( formData.value.name, formData.value.manufacturer, formData.value.minSize, diff --git a/Front/skydivelogs-app/src/app/new-jump/new-jump.component.ts b/Front/skydivelogs-app/src/app/new-jump/new-jump.component.ts index 44d113f..6cb754c 100644 --- a/Front/skydivelogs-app/src/app/new-jump/new-jump.component.ts +++ b/Front/skydivelogs-app/src/app/new-jump/new-jump.component.ts @@ -1,12 +1,15 @@ import { Component, OnInit } from '@angular/core'; -import { ServiceComm } from '../../services/service-comm.service'; -import { ServiceApiGet } from '../../services/service-api-get.service'; -import { ServiceApiPost } from '../../services/service-api-post.service'; import { JumpTypeResp } from '../../models/jumpType'; import { AircraftResp } from '../../models/aircraft'; import { DropZoneResp } from '../../models/dropzone'; import { DateService } from '../../services/date.service'; import { GearResp } from '../../models/gear'; +import { ServiceComm } from '../../services/service-comm.service'; +import { DropzoneService } from '../../services/dropzone.service'; +import { AircraftService } from '../../services/aircraft.service'; +import { JumpService } from '../../services/jump.service'; +import { JumpTypeService } from '../../services/jump-type.service'; +import { GearService } from '../../services/gear.service'; import { isNumber } from 'util'; @Component({ @@ -33,8 +36,11 @@ export class NewJumpComponent implements OnInit { constructor( private serviceComm: ServiceComm, - private serviceApiGet: ServiceApiGet, - private serviceApiPost: ServiceApiPost, + private serviceJump: JumpService, + private serviceJumpType: JumpTypeService, + private serviceAircraft: AircraftService, + private serviceDropzone: DropzoneService, + private serviceGear: GearService, private dateService: DateService ) { } @@ -52,7 +58,7 @@ export class NewJumpComponent implements OnInit { } onFormSubmit() { - this.serviceApiPost.AddListOfJump( + this.serviceJump.AddListOfJump( this.selectedJumpType.id, this.selectedAircraft.id, this.selectedDz.id, @@ -79,7 +85,7 @@ export class NewJumpComponent implements OnInit { } private getListOfJumpTypes() { - this.serviceApiGet.getListOfJumpTypes().subscribe(data => { + this.serviceJumpType.getListOfJumpTypes().subscribe(data => { this.listOfJumpType = data; this.getListOfAircrafts(); this.getListOfDropZones(); @@ -88,13 +94,13 @@ export class NewJumpComponent implements OnInit { } private getListOfAircrafts() { - this.serviceApiGet.getListOfAircrafts().subscribe(data => { + this.serviceAircraft.getListOfAircrafts().subscribe(data => { this.listOfAircraft = data; }); } private getListOfDropZones() { - this.serviceApiGet.getListOfDropZones().subscribe(data => { + this.serviceDropzone.getListOfDropZones().subscribe(data => { data.sort((a, b) => (b.isFavorite ? 1 : 0) - (a.isFavorite ? 1 : 0)); this.listOfDropZone = data; this.listOfFilteredDropZone = data; @@ -102,7 +108,7 @@ export class NewJumpComponent implements OnInit { } private getListOfGears() { - this.serviceApiGet.getListOfGears().subscribe(data => { + this.serviceGear.getListOfGears().subscribe(data => { this.listOfGear = data; }); } diff --git a/Front/skydivelogs-app/src/app/summary/summary.component.ts b/Front/skydivelogs-app/src/app/summary/summary.component.ts index 9721a60..ee74b3a 100644 --- a/Front/skydivelogs-app/src/app/summary/summary.component.ts +++ b/Front/skydivelogs-app/src/app/summary/summary.component.ts @@ -1,6 +1,6 @@ import { Component, OnInit } from '@angular/core'; import { ServiceComm } from '../../services/service-comm.service'; -import { ServiceApiGet } from '../../services/service-api-get.service'; +import { StatsService } from '../../services/stats.service'; @Component({ selector: 'app-summary', @@ -16,7 +16,7 @@ export class SummaryComponent implements OnInit { public dsNbJumpByYear; constructor( - private serviceApi: ServiceApiGet, + private serviceApi: StatsService, private serviceComm: ServiceComm ) { } diff --git a/Front/skydivelogs-app/src/services/aircraft.service.ts b/Front/skydivelogs-app/src/services/aircraft.service.ts new file mode 100644 index 0000000..2763822 --- /dev/null +++ b/Front/skydivelogs-app/src/services/aircraft.service.ts @@ -0,0 +1,35 @@ +import { Injectable } from '@angular/core'; +import { HttpClient, HttpHeaders } from '@angular/common/http'; +import { Observable } from 'rxjs'; +import { environment } from '../environments/environment'; +import { AircraftResp, AircraftReq } from '../models/aircraft'; + +@Injectable() +export class AircraftService { + + private readonly headers = new HttpHeaders({ + 'Access-Control-Allow-Origin': environment.urlApi + }); + constructor(private http: HttpClient) { } + + public getListOfAircrafts(): Observable> { + return this.http.get>( + `${environment.urlApi}/api/Aircraft`, + { headers: this.headers } + ); + } + + public AddAircraft(aircraftName: string) { + const bodyNewAircraft: AircraftReq = { + id: 0, + name: aircraftName + }; + + this.http + .post(`${environment.urlApi}/api/Aircraft`, bodyNewAircraft, { + headers: this.headers + }) + .subscribe(data => console.log(data)); + } + +} diff --git a/Front/skydivelogs-app/src/services/service-api-put.service.ts b/Front/skydivelogs-app/src/services/dropzone.service.ts similarity index 65% rename from Front/skydivelogs-app/src/services/service-api-put.service.ts rename to Front/skydivelogs-app/src/services/dropzone.service.ts index e4200c8..a5c9f1d 100644 --- a/Front/skydivelogs-app/src/services/service-api-put.service.ts +++ b/Front/skydivelogs-app/src/services/dropzone.service.ts @@ -1,17 +1,31 @@ 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 { DateService } from './date.service'; import { DropZoneResp } from '../models/dropzone'; + @Injectable() -export class ServiceApiPut { +export class DropzoneService { + private readonly headers = new HttpHeaders({ 'Access-Control-Allow-Origin': environment.urlApi }); + constructor(private http: HttpClient) { } - constructor(private http: HttpClient, private dateService: DateService) { } + 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 SetFavoriteDropZone(selectedDz: DropZoneResp): boolean { selectedDz.isFavorite = true; @@ -34,4 +48,5 @@ export class ServiceApiPut { return true; } + } diff --git a/Front/skydivelogs-app/src/services/gear.service.ts b/Front/skydivelogs-app/src/services/gear.service.ts new file mode 100644 index 0000000..3173c50 --- /dev/null +++ b/Front/skydivelogs-app/src/services/gear.service.ts @@ -0,0 +1,47 @@ +import { Injectable } from '@angular/core'; +import { HttpClient, HttpHeaders } from '@angular/common/http'; +import { Observable } from 'rxjs'; +import { environment } from '../environments/environment'; +import { GearResp, GearReq } from '../models/gear'; + + +@Injectable() +export class GearService { + + private readonly headers = new HttpHeaders({ + 'Access-Control-Allow-Origin': environment.urlApi + }); + constructor(private http: HttpClient) { } + + public getListOfGears(): Observable> { + return this.http.get>(`${environment.urlApi}/api/Gear`, { + headers: this.headers + }); + } + + public AddGear(name: string, + manufacturer: string, + minSize: number, + maxSize: number, + aad: string, + mainCanopy: string, + reserveCanopy: string) { + const bodyNewGear: GearReq = { + id: 0, + name: name, + manufacturer: manufacturer, + minSize: minSize, + maxSize: maxSize, + aad: aad, + mainCanopy: mainCanopy, + reserveCanopy: reserveCanopy + }; + + this.http + .post(`${environment.urlApi}/api/Gear`, bodyNewGear, { + headers: this.headers + }) + .subscribe(data => console.log(data)); + } + +} diff --git a/Front/skydivelogs-app/src/services/jump-type.service.ts b/Front/skydivelogs-app/src/services/jump-type.service.ts new file mode 100644 index 0000000..c0ba3cc --- /dev/null +++ b/Front/skydivelogs-app/src/services/jump-type.service.ts @@ -0,0 +1,21 @@ +import { Injectable } from '@angular/core'; +import { HttpClient, HttpHeaders } from '@angular/common/http'; +import { Observable } from 'rxjs'; +import { environment } from '../environments/environment'; +import { JumpTypeResp } from '../models/jumpType'; + +@Injectable() +export class JumpTypeService { + + private readonly headers = new HttpHeaders({ + 'Access-Control-Allow-Origin': environment.urlApi + }); + constructor(private http: HttpClient) { } + + public getListOfJumpTypes(): Observable> { + return this.http.get>( + `${environment.urlApi}/api/JumpType`, + { headers: this.headers } + ); + } +} diff --git a/Front/skydivelogs-app/src/services/service-api-post.service.ts b/Front/skydivelogs-app/src/services/jump.service.ts similarity index 70% rename from Front/skydivelogs-app/src/services/service-api-post.service.ts rename to Front/skydivelogs-app/src/services/jump.service.ts index e0bdb69..dfed75d 100644 --- a/Front/skydivelogs-app/src/services/service-api-post.service.ts +++ b/Front/skydivelogs-app/src/services/jump.service.ts @@ -1,20 +1,31 @@ import { Injectable } from '@angular/core'; import { HttpClient, HttpHeaders } from '@angular/common/http'; - -import { JumpReq } from '../models/jump'; +import { Observable } from 'rxjs'; +import { map } from 'rxjs/operators'; import { environment } from '../environments/environment'; import { DateService } from './date.service'; -import { AircraftReq } from '../models/aircraft'; -import { GearReq } from '../models/gear'; +import { JumpResp, JumpReq } from '../models/jump'; @Injectable() -export class ServiceApiPost { +export class JumpService { + private readonly headers = new HttpHeaders({ 'Access-Control-Allow-Origin': environment.urlApi }); - constructor(private http: HttpClient, private dateService: DateService) { } + 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 AddListOfJump( selectedJumpType: number, selectedAircraft: number, @@ -93,42 +104,4 @@ export class ServiceApiPost { .subscribe(data => console.log(data)); } } - - public AddAircraft(aircraftName: string) { - const bodyNewAircraft: AircraftReq = { - id: 0, - name: aircraftName - }; - - this.http - .post(`${environment.urlApi}/api/Aircraft`, bodyNewAircraft, { - headers: this.headers - }) - .subscribe(data => console.log(data)); - } - - public AddGear(name: string, - manufacturer: string, - minSize: number, - maxSize: number, - aad: string, - mainCanopy: string, - reserveCanopy: string) { - const bodyNewGear: GearReq = { - id: 0, - name: name, - manufacturer: manufacturer, - minSize: minSize, - maxSize: maxSize, - aad: aad, - mainCanopy: mainCanopy, - reserveCanopy: reserveCanopy - }; - - this.http - .post(`${environment.urlApi}/api/Gear`, bodyNewGear, { - headers: this.headers - }) - .subscribe(data => console.log(data)); - } } diff --git a/Front/skydivelogs-app/src/services/service-api-get.service.ts b/Front/skydivelogs-app/src/services/service-api-get.service.ts deleted file mode 100644 index e1fe7d1..0000000 --- a/Front/skydivelogs-app/src/services/service-api-get.service.ts +++ /dev/null @@ -1,99 +0,0 @@ -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; - } -} diff --git a/Front/skydivelogs-app/src/services/stats.service.ts b/Front/skydivelogs-app/src/services/stats.service.ts new file mode 100644 index 0000000..d781c6d --- /dev/null +++ b/Front/skydivelogs-app/src/services/stats.service.ts @@ -0,0 +1,47 @@ +import { Injectable } from '@angular/core'; +import { HttpClient, HttpHeaders } from '@angular/common/http'; +import { environment } from '../environments/environment'; +import { + StatsResp, + StatsByDzResp, + StatsByAircraftResp, + StatsByJumpTypeResp, + StatsByRigResp, + StatsByYearResp +} from '../models/stats'; + +@Injectable() +export class StatsService { + + private readonly headers = new HttpHeaders({ + 'Access-Control-Allow-Origin': environment.urlApi + }); + + constructor(private http: HttpClient) { } + + 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; + } +}