import { Component, OnInit } from "@angular/core"; import { ElementRef } from "@angular/core"; import { NavController, Platform } from "@ionic/angular"; import { TranslatorService } from "src/app/hmg-common/services/translator/translator.service"; import { CommonService } from "src/app/hmg-common/services/common/common.service"; import { SharedDataService } from "src/app/hmg-common/services/shared-data-service/shared-data.service"; import { SMSCheckRequest } from "src/app/hmg-common/services/authentication/models/smscheck.request"; import { LoginModel } from "../models/LoginModel"; import { AuthenticationService } from "src/app/hmg-common/services/authentication/authentication.service"; import { SMSCheckResponse } from "src/app/hmg-common/services/authentication/models/smscheck.response"; import { Password } from "../models/password"; import { GetLoginInfoRequest } from 'src/app/hmg-common/services/authentication/models/get-login-info.request'; @Component({ selector: "app-sms-page", templateUrl: "./sms-page.page.html", styleUrls: ["./sms-page.page.scss"] }) export class SmsPageComponent implements OnInit { public static LOGIN_DATA = "LOGIN_DATA"; Channel: number = 0; activationCode: string; P_SESSION_ID: number; P_USER_NAME: string; timeInSeconds: any; time: any; runTimer: any; hasStarted: any; hasFinished: any; remainingTime: any; displayTime: any; loginTokenID: string; public isForgetPwd: boolean = false; public isExpiredPwd: boolean = false; public count: number = 0; private loginData = new LoginModel(); public deviceToken:any; public loginTypeData:any; constructor( public navCtrl: NavController, public translate: TranslatorService, public common: CommonService, private elementRef: ElementRef, public authService: AuthenticationService, public sharedData: SharedDataService, public platform: Platform, ) {} ngOnInit() { this.count = 0; this.initTimer(); this.startTimer(); this.isForgetPwd = this.sharedData.getSharedData(Password.IS_FORGET_PSW) || false; this.isExpiredPwd = this.sharedData.getSharedData(Password.IS_EXPIRED_PSW) || false; this.loginData= this.sharedData.getSharedData(AuthenticationService.LOGIN_DATA, false); console.log("loginData : "+ this.loginData); this.deviceToken= this.common.sharedService.getSharedData(AuthenticationService.DEVICE_TOKEN, false); if(this.deviceToken == undefined){ this.deviceToken = localStorage.getItem("deviceToken"); } console.log("deviceToken :"+this.deviceToken); this.loginTypeData= this.common.sharedService.getSharedData(SMSCheckRequest.SHARED_DATA, false); console.log("loginType :"+this.loginTypeData.loginType); } initTimer() { // Pomodoro is usually for 25 minutes if (!this.timeInSeconds) { this.timeInSeconds = 600; } this.time = this.timeInSeconds; this.runTimer = false; this.hasStarted = false; this.hasFinished = false; this.remainingTime = this.timeInSeconds; this.displayTime = this.common.getSecondsAsDigitalClock(this.remainingTime); } startTimer() { this.runTimer = true; this.hasStarted = true; this.timerTick(); } pauseTimer() { this.runTimer = false; } resumeTimer() { this.startTimer(); } timerTick() { setTimeout(() => { if (!this.runTimer) { return; } this.remainingTime--; this.displayTime = this.common.getSecondsAsDigitalClock( this.remainingTime ); if (this.remainingTime > 0) { this.timerTick(); } else { this.hasFinished = true; this.pauseTimer(); this.navCtrl.pop(); } }, 1000); } ionViewWillLeave() { this.pauseTimer(); } checkOTPLength(){ console.log(this.activationCode.length); if(this.activationCode.length==4){ this.checkVerificationCode(); } } checkVerificationCode() { if (this.count < 3) { if ( this.activationCode == undefined || this.activationCode == null || this.activationCode == "" ) { // this.common.showAlert(this.translate.translate('verificationcode.emptyCode')); } else { this.count = this.count + 1; if (this.isForgetPwd || this.isExpiredPwd) { this.checkForgetPwdSMS(); } else { this.checkSMS(); } } } else { let msg: string = this.translate.trPK("general", "noOfTriesLogin"); this.common.JustAlertDialog(this.translate.trPK("general", "ok"), msg); } } public checkSMS() { // alert("checkSMS in page") const data = this.sharedData.getSharedData(AuthenticationService.LOGIN_DATA, false); const request = new SMSCheckRequest(); request.LogInTokenID = data.LogInTokenID; request.activationCode = this.activationCode; request.P_USER_NAME = data.P_USER_NAME; request.MobileNumber = data.MobileNumber; this.authService .checkSMS(request, () => {}, this.translate.trPK("general", "ok")) .subscribe((result: SMSCheckResponse) => { console.log(result); if (this.common.validResponse(result)) { AuthenticationService.servicePrivilage=result.Privilege_List; this.authService.setAuthenticatedUser(result).subscribe(() => { //call insert Mobile Login if (this.platform.is("mobile")) { this.insertMobileLogin(); } this.common.openHome(); }); } }); } public insertMobileLogin(){ // alert("insertMobileLogin"); let request = new GetLoginInfoRequest(); this.authService.setPublicFields(request); request.MobileNumber = this.loginData.MobileNumber; request.P_USER_NAME=this.loginData.P_USER_NAME; request.UserName=this.loginData.P_USER_NAME; request.LogInTokenID =this.loginData.LogInTokenID; request.CompanyID =1;//CompanyID request.DeviceType= this.common.getDeviceType(); request.DeviceToken=this.deviceToken; request.LoginType=this.loginTypeData.loginType; this.authService .insertMobileLoginInfo( request, () => { }, this.translate.trPK("general", "ok") ) .subscribe((result: any) => { console.log("successful insertMobileLogin" ); }); } public checkForgetPwdSMS() { const data = this.sharedData.getSharedData(AuthenticationService.LOGIN_DATA, false); const request = new SMSCheckRequest(); request.LogInTokenID = data.LogInTokenID; request.activationCode = this.activationCode; request.P_USER_NAME = data.P_USER_NAME; console.log(data.LogInTokenID); console.log(data.P_USER_NAME); this.authService .checkForgetSMS(request, () => {}, this.translate.trPK("general", "ok")) .subscribe((result: SMSCheckResponse) => { console.log(result); if (this.common.validResponse(result)) { console.log(result); if (this.isForgetPwd) { this.common.openForgotPassword(); } if(this.isExpiredPwd) { this.sharedData.setSharedData(true,Password.IS_EXPIRED_PSW); this.common.openChangePassword(); } } }); } }