HEX
Server: Apache/2.4.41 (Ubuntu)
System: Linux ip-172-31-42-149 5.15.0-1084-aws #91~20.04.1-Ubuntu SMP Fri May 2 07:00:04 UTC 2025 aarch64
User: ubuntu (1000)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
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);
        }
      );
    });
  }

}