Merge remote-tracking branch 'origin/feature/pushNotifications' into developer

This commit is contained in:
tiago.kayaya
2021-02-01 14:13:43 +01:00
39 changed files with 1179 additions and 113 deletions
+87 -42
View File
@@ -8,6 +8,14 @@ import { AlertController } from '@ionic/angular';
import { StorageService } from 'src/app/services/storage.service';
import { AuthConnstants } from 'src/app/config/auth-constants';
import { PhotoService } from 'src/app/services/photo.service';
import { NotificationsService } from 'src/app/services/notifications.service';
import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';
import { Token } from '../../models/token.model';
import { Plugins, PushNotification, PushNotificationToken, PushNotificationActionPerformed } from '@capacitor/core';
const { PushNotifications } = Plugins;
@Component({
@@ -23,7 +31,9 @@ export class LoginPage implements OnInit {
userattempt: User;
constructor(
private router: Router,
private http: HttpClient,
private notificatinsservice: NotificationsService,
private router: Router,
private authService: AuthService,
private storageService: StorageService,
private toastService: ToastService,
@@ -31,17 +41,17 @@ export class LoginPage implements OnInit {
public alertController: AlertController) { }
ngOnInit() {
}
//Function to validade the login inputs
validateInput(){
validateInput() {
return (
this.username.trim().length > 0
this.username.trim().length > 0
&& this.password.trim().length > 0
);
);
}
async presentAlert(message:string) {
async presentAlert(message: string) {
const alert = await this.alertController.create({
cssClass: 'my-custom-class',
header: 'Mensagem do sistema',
@@ -52,54 +62,89 @@ export class LoginPage implements OnInit {
await alert.present();
}
loginRocketChat(user:any){
loginRocketChat(user: any) {
let postData = {
"user": user.username,
"password": user.password,
}
this.authService.loginChat(postData).subscribe((res: any) =>{
this.authService.loginChat(postData).subscribe((res: any) => {
console.log(res.data);
this.storageService.store(AuthConnstants.AUTH, res.data);
console.log('Login to Rocket chat OK');
},(error:any) =>{
}, (error: any) => {
console.log('Network error');
this.presentAlert('Network error '+error);
this.presentAlert('Network error ' + error);
});
}
async Login(){
try {
//Go to our home in home/feed.
//this.router.navigate(['/home/events']);
if(this.validateInput()){
this.userattempt = {
username: this.username,
password: this.password,
domainName: environment.domain,
BasicAuthKey: ""
}
if (await this.authService.login(this.userattempt)){
console.log(this.userattempt);
this.loginRocketChat(this.userattempt);
this.router.navigate(['/home/events']);
}
else
{
//this.toastService.presentToast('Não foi possível fazer login"');
this.presentAlert('O nome de utilizador e palavra-passe estão incorretas ou verifique a sua conexão com a internet e volte a tentar.');
}
storeUserIdANdToken() {
(PushNotifications as any).requestPermission().then(result => {
PushNotifications.register();
});
PushNotifications.addListener(
'registration',
(token: PushNotificationToken) => {
console.log('FIREBASE TOKEN', token.value)
this.storageService.store(this.username, token.value);
this.storageService.get(this.username).then(value => {
console.log('STORAGE TOKEN', value)
this.storageService.get(AuthConnstants.USER).then(res => {
console.log('USERID', res);
const headers = { 'Authorization': 'Basic cGF1bG8ucGludG9AZ2FiaW5ldGVkaWdpdGFsLmxvY2FsOnRhYnRlc3RlQDAwNg==' };
const body = { UserId: res,
TokenId: token.value,
Status: 1,
Service: 1 };
this.http.post<Token>('https://equilibrium.dyndns.info/GabineteDigital.Services/V4/api/notifications/token', body,{headers}).subscribe(data => {
console.log('TOKEN USER MIDLE', data);
})
/*this.http.get<Token>('http://gpr-dev-01.gabinetedigital.local/GabineteDigital.Services/V4/api/notifications/user/'+res).subscribe(data => {
console.log('TOKEN USER MIDLE',data);
})*/
});
});
},
);
};
async Login() {
/* try { */
//Go to our home in home/feed.
//this.router.navigate(['/home/events']);
if (this.validateInput()) {
this.userattempt = {
username: this.username,
password: this.password,
domainName: environment.domain,
BasicAuthKey: ""
}
if (await this.authService.login(this.userattempt)) {
/* this.loginRocketChat(); */
this.storeUserIdANdToken()
this.router.navigate(['/home/events']);
}
else {
//this.toastService.presentToast('Não foi possível fazer login"');
this.presentAlert('O nome de utilizador e palavra-passe estão incorretas ou verifique a sua conexão com a internet e volte a tentar.');
}
else{
//this.toastService.presentToast('Preencha todos campos');
this.presentAlert('Por favor, insira o seu nome de utilizador e palavra-passe.');
}
} catch (error) {
error
this.presentAlert('Ocorreu um erro ao fazer login. Contacte o administrador de sistema. ');
}
else {
//this.toastService.presentToast('Preencha todos campos');
this.presentAlert('Por favor, insira o seu nome de utilizador e palavra-passe.');
}
/* } catch (error) {
error
this.presentAlert('Ocorreu um erro ao fazer login. Contacte o administrador de sistema. '+ error);
} */
}
}