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