/* eslint-disable */ /* tslint:disable */ /// import { Injectable, NgZone } from '@angular/core'; import { ActivatedRoute } from '@angular/router' import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http'; import { environment } from 'src/environments/environment'; import { StorageService } from 'src/app/services/storage.service'; import { AuthConnstants } from 'src/app/config/auth-constants'; import { Token } from '../models/token.model'; import { ModalController, AlertController, AnimationController, Platform } from '@ionic/angular'; import { NavigationExtras,Router } from '@angular/router'; import { ToastService } from '../services/toast.service'; import { Optional } from '@angular/core'; import { JsonStore } from './jsonStore.service'; @Injectable({ providedIn: 'root' }) export class NotificationsService { adding: "intervenient" | "CC" = "intervenient"; folderId: string; DataArray: Array = []; callbacks: { type: string, funx: Function }[] = [] constructor( private http: HttpClient, private storageService: StorageService, private modalController: ModalController, public modalCtrl: AlertController, private animationController: AnimationController, private platform: Platform, private router: Router, private toastService: ToastService, private zone: NgZone, private activeroute: ActivatedRoute, private jsonstore: JsonStore) { } registerCallback(type: string, funx: Function ) { this.callbacks.push({type, funx}) } getTokenByUserIdAndId(user, userID) { const geturl = environment.apiURL + 'notifications/user/' + userID; return this.http.get(`${geturl}`); } getAndpostToken(username) { if (this.platform.is('desktop') || this.platform.is('mobileweb')) { console.log('Notifications not supported') } else { const geturl = environment.apiURL + 'notifications/token'; if(window['WLAuthorizationManager']) { if(window['WLAuthorizationManager'].obtainAccessToken) { window['WLAuthorizationManager'].obtainAccessToken("push.mobileclient").then( (token) => { console.log('Push Notification: Success ' + token); window['MFPPush'].initialize( function (successResponse) { console.log("Push notification Successfully Service intialized: " + successResponse); }, function (failureResponse) { console.log("Push notification failure Service intialized: " + failureResponse); } ); window['MFPPush'].registerDevice(null, (successResponse) => { console.log("Successfully registered: " + JSON.stringify(successResponse)); console.log('token: ', successResponse.deviceId) this.storageService.store(username, successResponse.deviceId); this.storageService.get(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.UserId, TokenId: successResponse.deviceId, Status: 1, Service: 1 }; this.http.post(`${geturl}`, body, { headers }).subscribe(data => { console.log('TOKEN USER MIDLE', data); }) }); }); }, function (failureResponse) { console.log("Successfully failue: " + JSON.stringify(failureResponse)); } ); }, (error) => { console.log('Push notification recived: failure ' + error.responseText); console.log(JSON.stringify(error)); } ); } } } } getAndpostToken2() { if (this.platform.is('desktop') || this.platform.is('mobileweb')) { console.log('Notifications not supported') } else { const geturl = environment.apiURL + 'notifications/token'; if(window['WLAuthorizationManager']) { if(window['WLAuthorizationManager'].obtainAccessToken) { window['WLAuthorizationManager'].obtainAccessToken("push.mobileclient").then( (token) => { console.log('Push Notification: Success ' + token); window['MFPPush'].initialize( function (successResponse) { console.log("Push notification Successfully Service intialized: " + successResponse); }, function (failureResponse) { console.log("Push notification failure Service intialized: " + failureResponse); } ); window['MFPPush'].registerDevice(null, (successResponse) => { console.log("Successfully registered: " + JSON.stringify(successResponse)); console.log('token: ', successResponse.deviceId) /* this.storageService.store(username, successResponse.deviceId); this.storageService.get(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.UserId, TokenId: successResponse.deviceId, Status: 1, Service: 1 }; this.http.post(`${geturl}`, body, { headers }).subscribe(data => { console.log('TOKEN USER MIDLE', data); }) }); }); */ }, function (failureResponse) { console.log("Successfully failue: " + JSON.stringify(failureResponse)); } ); }, (error) => { console.log('Push notification recived: failure ' + error.responseText); console.log(JSON.stringify(error)); } ); } } } } removeDepartment(index): void { /* this.DataArray[this.DataArray.findIndex(item => item.index == index)]; this.DataArray.splice( this.DataArray.findIndex(item => item.indexOf(index.to) === 'William'),1); */ const indexx = this.DataArray.indexOf(index, 0); if (indexx > -1) { this.DataArray.splice(index, 1); console.log('This notificatio', this.DataArray); } } tempClearArray(){ this.DataArray = []; } async onReceviNotification() { if(window['WLAuthorizationManager']) { if(window['WLAuthorizationManager'].obtainAccessToken) { window['WLAuthorizationManager'].obtainAccessToken("push.mobileclient").then( (token) => { console.log('Push Notification: Success ' + token); window['MFPPush'].initialize( function (successResponse) { console.log("Push notification Successfully intialized: " + successResponse); window['MFPPush'].registerNotificationsCallback(notificationReceived); }, function (failureResponse) { console.log("Push notification failure intialized: " + failureResponse); } ); var notificationReceived = (message) => { //this.jsonstore.createCollection('Notifications',message); this.DataArray.push(message) console.log("On ReceiveNotification", this.DataArray) this.storageService.store("Notifications",JSON.stringify(this.DataArray)) console.log(message); var data = JSON.parse(message.payload); console.log('data.Service', data.Service); // module console.log('data.IdObject', data.IdObject); // Object id console.log('data.Object', data.Object); // details if(message.actionName){ this.notificatinsRoutes(data); } else { /* this.toastService.notificationMessage(message.alert,this.notificatinsRoutes, data); */ //this.notificatinsRoutes(data); console.log(data) } this.callbacks.forEach( e=> { if(e.type == data.Object) { e.funx() } }) } }, (error) => { console.log('Push notification recived: failure ' + error.responseText); console.log(JSON.stringify(error)); } ); } } } notificatinsRoutes = (data) => { if (data.Service === "agenda") { this.zone.run(() => this.router.navigate(['/home/agenda', data.IdObject, 'agenda'])); } else if (data.Service === "gabinete-digital" && data.Object === "expediente") { this.zone.run(() => this.router.navigate(['/home/gabinete-digital/expediente',data.IdObject,'gabinete-digital'])); } else if (data.Service === "agenda" && data.Object === "event-list") { this.zone.run(() => this.router.navigate(['/home/agenda/event-list/approve-event',data.IdObject, 'agenda'])); }else if (data.Service === "gabinete-digital" && data.Object === "despachos") { this.zone.run(() => this.router.navigate(['/home/gabinete-digital/despachos',data.IdObject,'gabinete-digital'],{replaceUrl: true})); } else if (data.Service === "gabinete-digital" && data.Object === "parecer") { this.zone.run(() => this.router.navigate(['/home/gabinete-digital/pedidos',data.IdObject,'gabinete-digital'])); } else if (data.Service === "gabinete-digital" && data.Object === "deferimento") { this.zone.run(() => this.router.navigate(['/home/gabinete-digital/pedidos',data.IdObject,'gabinete-digital'])); } else if (data.Service === "gabinete-digital" && data.Object === "despachos-pr") { this.zone.run(() =>this.router.navigate(['/home/gabinete-digital/despachos-pr',data.IdObject,'gabinete-digital'])); } else if (data.Service === "accoes" && data.Object === "accao") { this.zone.run(() => this.router.navigate(['/home/publications',data.IdObject])); } else if (data.Service === "accoes" && data.Object === "publicacao") { this.zone.run(() => this.router.navigate(['/home/publications/view-publications',data.FolderId,data.IdObject])); } else if (data.Service === "gabinete-digital" && data.Object === "diplomas") { this.zone.run(() =>this.router.navigate(['/home/gabinete-digital/diplomas', data.IdObject, 'gabinete-digital'])); } else if (data.Service === "gabinete-digital" && data.Object === "diplomas-assinar") { let navigationExtras: NavigationExtras = { queryParams: { "serialNumber": data.IdObject, } }; this.zone.run(() =>this.router.navigate(['/home/gabinete-digital/diplomas-assinar/diploma-assinar'], navigationExtras)); } else if (data.Service === "gabinete-digital" && data.Object === "expedientes-pr") { this.zone.run(() =>this.router.navigate(['/home/gabinete-digital/expedientes-pr',data.IdObject,'gabinete-digital'])); } } platformVerify() { if (this.platform.is('cordova')) { } else { } } }