File: /var/www/vhost/disk-apps/pwa.sports-crowd.com/src/app/services/data-policy.service.ts
import { ApiService } from './api.service';
import { TranslateService } from '@ngx-translate/core';
import { UtilsService } from './utils.service';
import { Injectable } from '@angular/core';
import { StorageService } from './storage.service';
import { ModalTermPage } from '../pages/modal-term/modal-term.page';
import { ModalController } from '@ionic/angular';
@Injectable({
providedIn: 'root'
})
export class DataPolicyService {
constructor(
public utilsService: UtilsService,
private translate: TranslateService,
public api: ApiService,
private storage: StorageService,
public modalController: ModalController,
public translateService: TranslateService
) { }
async get() {
return new Promise<void>((resolve, reject) => {
this.utilsService
.presentLoading(this.translate.instant("all.loading"))
.then(async () => {
(await this.api.getFree("data_policy/get")).subscribe(
(res: any) => {
this.utilsService.dismissLoading();
resolve(res);
},
(err) => {
this.utilsService.dismissLoading();
console.error("Erro provider dorsalList", err);
reject(err);
}
);
});
});
}
validate() {
this.storage.get("token").then(async (token) => {
if (token) {
(await this.api.get("data_policy/validate", token.access_token)).subscribe(
(resp: any) => {
if (resp.length) {
resp.forEach((termItem: any) => {
this.presentModal(termItem);
});
}
},
(error) => {
console.log('Error validateTerms', error);
}
);
}
})
.catch((error) => {
console.log("Error storage token", error);
});
}
async presentModal(term: any) {
const modal = await this.modalController.create({
component: ModalTermPage,
showBackdrop: false,
swipeToClose: false,
componentProps: {
term: term,
title: this.translateService.instant("NEW_DATA_POLICY"),
buttonText: this.translateService.instant("ACCEPT_DATA_POLICY"),
typeDocument: 'data_policy'
},
});
modal.onDidDismiss().then((data) => {
this.validate();
});
return await modal.present();
}
accept(formData: any) {
return new Promise(async (resolve, reject) => {
(await this.api.post("data_policy/accept", formData, await this.utilsService.getAccessToken())).subscribe(
(res: any) => {
resolve(res);
},
(err) => {
reject(err);
console.error("Error acceptTerms", err);
}
);
});
}
}