File: /var/www/vhost/disk-apps/pwa.sports-crowd.com/src/app/services/term.service.ts
import { Injectable } from "@angular/core";
import { StorageService } from './storage.service';
import { ApiService } from "./api.service";
import { ModalController } from "@ionic/angular";
import { ModalTermPage } from "../pages/modal-term/modal-term.page";
import { UtilsService } from "./utils.service";
import { TranslateService } from "@ngx-translate/core";
@Injectable({
providedIn: "root",
})
export class TermService {
term: any;
constructor(
private api: ApiService,
private storage: StorageService,
private utilsService: UtilsService,
public modalController: ModalController,
public translateService: TranslateService
) { }
validateTerms() {
this.storage.get("token").then(async (token) => {
if (token) {
(await this.api.get("term/validate", token.access_token)).subscribe(
(term: any) => {
this.term = term;
if (this.term.length) {
this.term.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("all.new_terms"),
buttonText: this.translateService.instant("all.accept_terms"),
typeDocument: 'term'
},
});
modal.onDidDismiss().then((data) => {
this.validateTerms();
});
return await modal.present();
}
accept(formData: any) {
return new Promise(async (resolve, reject) => {
(await this.api.post("term/accept", formData, await this.utilsService.getAccessToken())).subscribe(
(res: any) => {
resolve(res);
},
(err) => {
reject(err);
console.error("Error acceptTerms", err);
}
);
});
}
}