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/pages/buy-tickets/buy-tickets.page.ts
import { Component, OnInit } from '@angular/core';
import { TranslateService } from '@ngx-translate/core';
import { UtilsService } from '../../services/utils.service';
import { TicketsService } from '../../services/tickets.service';
import { StorageService } from '../../services/storage.service';
import { CityService } from '../../services/city.service';
import { HomeService } from '../../services/home.service';
import { Router } from '@angular/router';
import { UserService } from '../../services/user.service';

@Component({
  selector: 'app-buy-tickets',
  templateUrl: './buy-tickets.page.html',
  styleUrls: ['./buy-tickets.page.scss'],
})
export class BuyTicketsPage implements OnInit {

  emptySettingsSlide: any;
  matchEvents: any = [];
  ticketParams: any = {};
  statusInvalidTerms: boolean = false;
  statusTerms: boolean = false;

  constructor(
    private router: Router,
    private utilsService: UtilsService,
    private storage: StorageService,
    public translateService: TranslateService,
    private ticketsService: TicketsService,
    public cityProvider: CityService,
    public homeProvider: HomeService,
    public ticketService: TicketsService,
    private userService: UserService
  ) { }

  ngOnInit() {
    this.emptySettingsSlide = {
      showImage: false,
      urlImage: "",
      showText: true,
      text: this.translateService.instant("tickets.empty_events"),
    };
    this.loadInit();
  }

  loadInit(time = 0) {
    setTimeout(() => {
      return new Promise((resolve, reject) => {
        this.utilsService.presentLoading(this.translateService.instant("all.loading")).then(() => {
          Promise.all([
            this.getMatchEvents(),
            this.ticketService.getParameters('terms').then((resp: any) => {
              this.ticketParams = resp.parameters;
            })
          ]).then(() => {
            this.utilsService.closeAllAlerts();
            resolve(false);
          }).catch((error) => {
            this.utilsService.closeAllAlerts();
            console.log('Error loadInit BuyTicketsPage', error);
            reject(error);
          });
        });
      });
    }, time);
  }

  getMatchEvents() {
    this.storage.get("token").then(async (token) => {
      this.utilsService.presentLoading(this.translateService.instant("all.loading"));
      (await this.ticketsService.getMatchEvents(token.access_token)).subscribe(
        (resp: any) => {
          this.matchEvents = [];
          resp.forEach((item: any) => {
            if (this.utilsService.validateDate(item.event_start_sale, "start") && this.utilsService.validateDate(item.event_end_sale, "end")) {
              item.season = item.season_app;
              delete item.season_app;
              item.team = item.team_app;
              delete item.team_app;
              this.matchEvents.push(item);
              this.ticketsService.matchEvents = this.matchEvents;
            }
          });
          this.utilsService.closeAllAlerts();
        },
        (error) => {
          this.utilsService.closeAllAlerts();
          console.log("Error getMatchEvents: ", error);
        }
      );
    });
  }

  dateFormat(date) {
    return new Date(date).toLocaleString();
  }

  buyTickets(event) {
    if (!this.userService.validateAlertsUseApp('document')) {
      return;
    }

    if (event.sales) {
      this.router.navigate([event.sales]);
    }
  }

  buySubscribers(event) {
    if (!this.userService.validateAlertsUseApp('document')) {
      return;
    }

    if (event.subscriberSales) {
      this.router.navigate([event.subscriberSales]);
    }
  }

  doRefresh(event) {
    setTimeout(() => {
      this.loadInit(100);
      event.target.complete();
    }, 500);
  }

  changeStatusTerms(e) {
    this.statusTerms = e.detail.checked;
  }

  openTermsSI() {
    if (this.ticketParams) {
      let link = this.ticketParams.terms;
      this.utilsService.openLink(link);
    }
  }

}