From d9b44d91fbd7dac09741d1952141717f433f0ef7 Mon Sep 17 00:00:00 2001 From: gap95 <gauri.a.pande@gmail.com> Date: Sat, 14 Dec 2019 19:56:23 +0100 Subject: [PATCH] Feedback functinality addedd --- src/app/app-routing.module.ts | 4 + src/app/feedback/feedback.page.html | 89 ++++++++++++----------- src/app/feedback/feedback.page.ts | 33 ++++++++- src/app/hirebike/hirebike.page.ts | 8 +- src/app/services/feedback.service.spec.ts | 12 +++ src/app/services/feedback.service.ts | 15 ++++ 6 files changed, 114 insertions(+), 47 deletions(-) create mode 100644 src/app/services/feedback.service.spec.ts create mode 100644 src/app/services/feedback.service.ts diff --git a/src/app/app-routing.module.ts b/src/app/app-routing.module.ts index 63a3b0a..66e2d1e 100644 --- a/src/app/app-routing.module.ts +++ b/src/app/app-routing.module.ts @@ -34,6 +34,10 @@ const routes: Routes = [ path: 'ridehistory', loadChildren: () => import('./ridehistory/ridehistory.module').then( m => m.RidehistoryPageModule) }, + { + path: 'feedback', + loadChildren: () => import('./feedback/feedback.module').then( m => m.FeedbackPageModule) + }, { path: 'feedback', loadChildren: () => import('./feedback/feedback.module').then( m => m.FeedbackPageModule) diff --git a/src/app/feedback/feedback.page.html b/src/app/feedback/feedback.page.html index 1eaaa37..64de9dc 100644 --- a/src/app/feedback/feedback.page.html +++ b/src/app/feedback/feedback.page.html @@ -1,50 +1,51 @@ <ion-header> - <ion-toolbar> - <ion-title>Feedback</ion-title> - </ion-toolbar> - </ion-header> + <ion-toolbar> + <ion-buttons slot="start"> + <ion-menu-button></ion-menu-button> + </ion-buttons> + <ion-title slot="start"> + Feedback + </ion-title> - <ion-content> - - <form [formGroup]="angForm" novalidate> - <ion-grid> - <ion-row justify-content-center> - <ion-col align-self-center size-md="6" size-lg="5" size-xs="12"> - <div padding> - <img src="../../../assets/images/bike2gologo.png"> - </div> - <div class="ion-text"> - <h3>Feedback</h3> - - </div> - - <ion-item ><ion-input type="text" formControlName="Bikeid" ></ion-input></ion-item> - - <div > - Bikeid + </ion-toolbar> +</ion-header> + +<ion-content> + + <!--form [formGroup]="angForm" novalidate--><div> + <ion-grid> + <ion-row justify-content-center> + <ion-col align-self-center size-md="6" size-lg="5" size-xs="12"> + <div padding> + <img src="../../../assets/images/bike2gologo.png"> + </div> + <div class="ion-text"> + <h3>Feedback</h3> + </div> - - <ion-item > - <ion-input type="text" formControlName="content" placeholder="Enter Feedback"></ion-input> - </ion-item> - - - + + + + <ion-item > + <ion-input type="textarea" [(ngModel)]="content" placeholder="Enter Feedback"></ion-input> + </ion-item> - - + - - <div id="correctCredentialsmsg" padding *ngIf="correctCredentials"> - Wrong Credentials ! - </div> - - <div padding> - <ion-button size="large" expand="block" (click)="submitFeedback()">Register</ion-button> - </div> - </ion-col> - </ion-row> - </ion-grid> - </form> - </ion-content> + + + + + + + + <div padding> + <ion-button size="large" expand="block" (click)="submitFeedback()">Submit Feedback</ion-button> + </div> + </ion-col> + </ion-row> + </ion-grid> + </div> + <!--/form--> +</ion-content> diff --git a/src/app/feedback/feedback.page.ts b/src/app/feedback/feedback.page.ts index 53034c9..57906a4 100644 --- a/src/app/feedback/feedback.page.ts +++ b/src/app/feedback/feedback.page.ts @@ -1,4 +1,11 @@ import { Component, OnInit } from '@angular/core'; +import { Router } from '@angular/router'; +import { HttpClient, HttpHeaders } from '@angular/common/http'; +import { RestService } from '../rest.service'; +import { UserService } from '../services/user.service'; +import { Storage } from '@ionic/storage'; +import { Observable } from 'rxjs'; +import { FeedbackService } from 'src/app/services/feedback.service'; @Component({ selector: 'app-feedback', @@ -6,10 +13,32 @@ import { Component, OnInit } from '@angular/core'; styleUrls: ['./feedback.page.scss'], }) export class FeedbackPage implements OnInit { + feedbackApi: Observable<any>; + content: ""; + bikeId=this.feedbackService.getBikeid(); - constructor() { } + constructor(private router: Router, + public httpClient: HttpClient, + public restService: RestService, + public userService: UserService, + private storage: Storage, + public feedbackService: FeedbackService) { } ngOnInit() { } - + submitFeedback() { + this.storage.get('token').then((token) => { + let url = 'http://193.196.52.237:8081/feedbacks' + + const headers = new HttpHeaders().set("Authorization", "Bearer " + token); + this.feedbackApi = this.httpClient.post<any>(url, {"content": this.content,"bikeId":this.bikeId},{headers}); + this.feedbackApi.subscribe((resp) => { + console.log("rides response", resp); + + //this.loadingService.hideLoader(); + }, (error) => {console.log(error) + //this.loadingService.hideLoader(); + }); + }); } +} \ No newline at end of file diff --git a/src/app/hirebike/hirebike.page.ts b/src/app/hirebike/hirebike.page.ts index b7567a7..3e80d7f 100644 --- a/src/app/hirebike/hirebike.page.ts +++ b/src/app/hirebike/hirebike.page.ts @@ -10,6 +10,7 @@ import { Router } from '@angular/router'; import { MapDataService } from '../services/map-data.service'; import { LocationService } from '../services/location.service'; import { LoadingService } from '../services/loading.service'; +import { FeedbackService } from 'src/app/services/feedback.service'; declare var H: any; @Component({ @@ -52,6 +53,7 @@ export class HirebikePage implements OnInit { public rideStarted = false; + constructor(private geolocation: Geolocation, public restService: RestService, public httpClient: HttpClient, @@ -60,7 +62,8 @@ export class HirebikePage implements OnInit { private router: Router, private mapDataService: MapDataService, public locationService: LocationService, - public loadingService: LoadingService) { + public loadingService: LoadingService, + public feedbackService: FeedbackService) { this.platform = new H.service.Platform({ 'apikey': 'tiVTgBnPbgV1spie5U2MSy-obhD9r2sGiOCbBzFY2_k' @@ -197,11 +200,13 @@ export class HirebikePage implements OnInit { startTrip() { this.storage.get('token').then((token) => { + const bikeId=this.bikeDetails.id; let url = 'http://193.196.52.237:8081/rent' + '?bikeId=' + this.bikeDetails.id; const headers = new HttpHeaders().set("Authorization", "Bearer " + token); let bikeApi = this.httpClient.get(url, { headers }); bikeApi.subscribe((resp) => { console.log('my data: ', resp); + this.feedbackService.setBikeid(this.bikeDetails.id); //this.loadingService.hideLoader(); this.toastService.showToast("Trip Started"); this.isBikeHired = true; @@ -229,6 +234,7 @@ export class HirebikePage implements OnInit { console.log('my data: ', resp); //this.loadingService.hideLoader(); this.toastService.showToast("Trip Ended!"); + this.router.navigateByUrl('/feedback'); }, (error) => { console.log(error); //this.loadingService.hideLoader(); diff --git a/src/app/services/feedback.service.spec.ts b/src/app/services/feedback.service.spec.ts new file mode 100644 index 0000000..dabb73d --- /dev/null +++ b/src/app/services/feedback.service.spec.ts @@ -0,0 +1,12 @@ +import { TestBed } from '@angular/core/testing'; + +import { FeedbackService } from './feedback.service'; + +describe('FeedbackService', () => { + beforeEach(() => TestBed.configureTestingModule({})); + + it('should be created', () => { + const service: FeedbackService = TestBed.get(FeedbackService); + expect(service).toBeTruthy(); + }); +}); diff --git a/src/app/services/feedback.service.ts b/src/app/services/feedback.service.ts new file mode 100644 index 0000000..7aa0bc0 --- /dev/null +++ b/src/app/services/feedback.service.ts @@ -0,0 +1,15 @@ +import { Injectable } from '@angular/core'; + +@Injectable({ + providedIn: 'root' +}) +export class FeedbackService { + feedbackBikeDetails = {name : "",bikeid:""} + constructor() { } +public getBikeid(){ + return this.feedbackBikeDetails.bikeid +} +public setBikeid (bikeid){ + this.feedbackBikeDetails.bikeid = bikeid +} +} -- GitLab