diff --git a/src/app/app-routing.module.ts b/src/app/app-routing.module.ts index c85d5d200ce231e3518a953ca235cbbac5053896..d3941421c3aa9bc5122e740c5a34c005febd1a58 100644 --- a/src/app/app-routing.module.ts +++ b/src/app/app-routing.module.ts @@ -1,34 +1,36 @@ -import { NgModule } from '@angular/core'; -import { PreloadAllModules, RouterModule, Routes } from '@angular/router'; - -const routes: Routes = [ - { - path: '', - redirectTo: 'login', - pathMatch: 'full' - }, - { - path: 'home', - loadChildren: () => import('./home/home.module').then(m => m.HomePageModule) - }, - { - path: 'list', - loadChildren: () => import('./list/list.module').then(m => m.ListPageModule) - }, - { - path: 'login', - loadChildren: () => import('./auth/login/login.module').then( m => m.LoginPageModule) - }, { +import { NgModule } from '@angular/core'; +import { PreloadAllModules, RouterModule, Routes } from '@angular/router'; + +const routes: Routes = [ + { + path: '', + redirectTo: 'login', + pathMatch: 'full' + }, + { + path: 'home', + loadChildren: () => import('./home/home.module').then(m => m.HomePageModule) + }, + { + path: 'list', + loadChildren: () => import('./list/list.module').then(m => m.ListPageModule) + }, + { + path: 'login', + loadChildren: () => import('./auth/login/login.module').then( m => m.LoginPageModule) + }, + { path: 'register', loadChildren: () => import('./auth/register/register.module').then( m => m.RegisterPageModule) } + + +]; -]; - -@NgModule({ - imports: [ - RouterModule.forRoot(routes, { preloadingStrategy: PreloadAllModules }) - ], - exports: [RouterModule] -}) -export class AppRoutingModule {} +@NgModule({ + imports: [ + RouterModule.forRoot(routes, { preloadingStrategy: PreloadAllModules }) + ], + exports: [RouterModule] +}) +export class AppRoutingModule {} diff --git a/src/app/home/home.page.html b/src/app/home/home.page.html index 0b5ff1873e0b6257049db1509eae6f31b875e470..59baf6927de11e15f88a2e24ccf7b344d6b3ccdf 100644 --- a/src/app/home/home.page.html +++ b/src/app/home/home.page.html @@ -80,22 +80,22 @@ - - Bike Location - - - {{selectedBike.address}} - - - - - Bike Distance - - - {{selectedBike.distance + "m"}} - - + + Bike Location + + + {{selectedBike.address}} + + + + Bike Distance + + + {{selectedBike.distance + "m"}} + + + Reserve @@ -103,6 +103,14 @@ Navigate + + + Hire + + + Cancel Reservation + + diff --git a/src/app/home/home.page.ts b/src/app/home/home.page.ts index 16fd7c2dbf52b2309fa4b0f87d244c9d6bd0fb0e..1df890bff5829f2038e31a5d0e5c6bae181c9597 100644 --- a/src/app/home/home.page.ts +++ b/src/app/home/home.page.ts @@ -4,6 +4,7 @@ import { RestService } from '../rest.service'; import { Observable } from 'rxjs'; import { HttpClient, HttpHeaders } from '@angular/common/http'; import { Storage } from '@ionic/storage'; +import { ToastService } from '../services/toast.service'; declare var H: any; @@ -24,7 +25,8 @@ export class HomePage { public is3DChecked = false; public isDetailsVisible = false; - public selectedBike ={}; + public selectedBike ={id: 0}; + public isBikeReserved= false; public tempArr = [1, 2]; public locationArr = [{ lat: 48.778409, lng: 9.179252 }, @@ -45,7 +47,8 @@ export class HomePage { constructor(private geolocation: Geolocation, public restService: RestService, public httpClient: HttpClient, - private storage: Storage) { + private storage: Storage, + private toastService: ToastService) { this.platform = new H.service.Platform({ 'apikey': 'tiVTgBnPbgV1spie5U2MSy-obhD9r2sGiOCbBzFY2_k' @@ -229,7 +232,38 @@ export class HomePage { showBikeDetails(bike) { this.selectedBike=bike; + this.selectedBike.id=bike.id; this.isDetailsVisible = true; } + reserveBike() { + //this.selectedBike=bikeS; + this.storage.get('token').then((token) => { + let url = 'http://193.196.52.237:8081/reservation' + '?bikeId=' + this.selectedBike.id; + const headers = new HttpHeaders().set("Authorization", "Bearer " + token); + this.bikeApi = this.httpClient.get(url, { headers }); + this.bikeApi.subscribe((resp) => { + console.log('my data: ', resp); + this.isBikeReserved=true; + this.toastService.showToast("Reservation Successful!"); + }, (error) => { + console.log(error) + this.toastService.showToast("Only one bike may be reserved or rented at a time") + }); + }); + + + } + cancelReservation() { + this.storage.get('token').then((token) => { + let url = 'http://193.196.52.237:8081/reservation' + '?bikeId=' + this.selectedBike.id; + const headers = new HttpHeaders().set("Authorization", "Bearer " + token); + this.bikeApi = this.httpClient.delete(url, { headers }); + this.bikeApi.subscribe((resp) => { + console.log('my data: ', resp); + this.isBikeReserved=false; + }, (error) => console.log(error)); + }); + + } }