I'm trying to verify that the response email field matches the email to the user who is logged-in. When I navigate to an URL (detail/:id) which was set up by another user and doesn't belong to the currently logged-in user, Angular should display an error message. So far so good. But in my case, the else function, to display the correct response does not get executed.
This is my code:
export class AppointmentDetailComponent implements OnInit {
username = '';
email = '';
message;
messageClass;
getData: any;
appointmentDetails = [0];
id: number;
private sub: any;
constructor(
private authService: AuthService,
private apiService: ApiService,
private route: ActivatedRoute
) {}
ngOnInit() {
this.sub = this.route.params.subscribe(params => {
this.id = +params['id']; // (+) converts string 'id' to a number
});
this.getData = this.getDataFunction;
this.getData();
}
getDataFunction() {
this.authService.getProfile().subscribe(profile => {
this.username = profile.user.username; // Set username
this.email = profile.user.email; // Set e-mail
if (profile.user.email) {
console.log(this.id);
this.apiService
.getAppointmentDetailsById(this.id, this.email)
.subscribe(appointmentDetails => {
if (!appointmentDetails.success) {
this.messageClass = 'alert alert-danger'; // Set error bootstrap class
this.message = appointmentDetails.message; // Set error message
} else {
console.log(appointmentDetails);
this.appointmentDetails = appointmentDetails;
}
});
}
});
}
ngOnDestroy() {
this.sub.unsubscribe();
}
}
Aucun commentaire:
Enregistrer un commentaire