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/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);
        }
      );
    });
  }
}