Add error handling for tournament data fetching

apikeys
Razmig Sarkissian 2 months ago
parent 34530f94c5
commit 73571702db
  1. 26
      tournaments/templates/tournaments/broadcast/broadcasted_auto.html
  2. 4
      tournaments/templates/tournaments/broadcast/broadcasted_club_auto.html
  3. 4
      tournaments/templates/tournaments/broadcast/broadcasted_event_auto.html

@ -43,7 +43,12 @@
prefixTitle: '',
retrieveData() {
fetch('/tournament/{{ tournament.id }}/broadcast/json/')
.then(res => res.json())
.then(res => {
if (!res.ok) {
throw new Error(`HTTP ${res.status}: ${res.statusText}`);
}
return res.json();
})
.then((data) => {
this.paginatedMatches = this.paginate(data.matches, 8)
this.paginatedGroupStages = this.paginate(data.group_stages, 4)
@ -56,6 +61,25 @@
this.active = 1; // Reset to the first page
}
})
.catch((error) => {
console.error('Error fetching tournament data:', error);
// If this tournament is in an iframe (part of event/club auto), notify parent
if (window.parent !== window) {
console.log('Notifying parent of tournament error');
window.parent.postMessage({
type: 'tournamentError',
tournamentId: '{{ tournament.id }}',
error: error.message
}, '*');
}
// Set empty data to prevent further errors
this.paginatedMatches = [];
this.paginatedGroupStages = [];
this.paginatedSummons = [];
this.paginatedRankings = [];
})
},
paginateSummons(array) {
let pageSize = 16

@ -53,6 +53,10 @@
if (event.data.type === 'tournamentCycleComplete') {
console.log(`Tournament completed (${event.data.reason})`);
setTimeout(loadNextTournament, 1000); // Switch after 1 second
} else if (event.data.type === 'tournamentError') {
console.error(`Tournament ${event.data.tournamentId.substring(0, 8)} failed: ${event.data.error}`);
console.log('Switching to next tournament due to error...');
setTimeout(loadNextTournament, 2000); // Switch after 2 seconds on error
}
});

@ -53,6 +53,10 @@
if (event.data.type === 'tournamentCycleComplete') {
console.log(`Tournament completed (${event.data.reason})`);
setTimeout(loadNextTournament, 1000); // Switch after 1 second
} else if (event.data.type === 'tournamentError') {
console.error(`Tournament ${event.data.tournamentId.substring(0, 8)} failed: ${event.data.error}`);
console.log('Switching to next tournament due to error...');
setTimeout(loadNextTournament, 2000); // Switch after 2 seconds on error
}
});

Loading…
Cancel
Save