🎮 Add support for selecting tournament scope in Challonge API integration

This commit is contained in:
2026-01-28 18:29:26 +00:00
parent e85aea3f0c
commit e55537ff8b

View File

@@ -50,16 +50,20 @@
<!-- Tournament Scope (v2.1 only) --> <!-- Tournament Scope (v2.1 only) -->
<div v-if="apiVersion === 'v2.1'" class="control-group"> <div v-if="apiVersion === 'v2.1'" class="control-group">
<div class="info-badge" v-if="isAuthenticated"> <label class="control-label">Tournament scope:</label>
OAuth Connected - showing created and admin tournaments <select v-model="tournamentScope" class="select-input">
<option :value="ScopeType.USER">User (default)</option>
<option :value="ScopeType.APPLICATION">
Application (requires application:manage token)
</option>
</select>
<div class="info-badge" v-if="tournamentScope === ScopeType.USER">
USER scope - tournaments you created or administer
</div> </div>
<div class="info-badge warning" v-else> <div class="info-badge warning" v-else>
API Key Mode - showing only created tournaments APPLICATION scope requires a client-credentials token with
application:manage
</div> </div>
<span class="scope-hint">
Shows tournaments you created and tournaments where you're an
admin
</span>
</div> </div>
<!-- OAuth Authentication (v2.1 only) --> <!-- OAuth Authentication (v2.1 only) -->
@@ -364,7 +368,7 @@ const totalTournaments = ref(0);
const hasNextPage = ref(false); const hasNextPage = ref(false);
// v2.1 Tournament Scope // v2.1 Tournament Scope
const showAllTournaments = ref(false); // Show all tournaments vs user-only (requires OAuth) const tournamentScope = ref(ScopeType.USER);
// Debug mode (can be enabled via localStorage.setItem('DEBUG_CHALLONGE', 'true')) // Debug mode (can be enabled via localStorage.setItem('DEBUG_CHALLONGE', 'true'))
const debugMode = ref(false); const debugMode = ref(false);
@@ -468,13 +472,13 @@ async function testListTournaments(resetPagination = true) {
const result = await queryAllTournaments(client.value, { const result = await queryAllTournaments(client.value, {
page: currentPage.value, page: currentPage.value,
per_page: 100, per_page: 100,
scopeType: ScopeType.USER scopeType: tournamentScope.value
}); });
console.log('📊 Tournament API Response (All States):', { console.log('📊 Tournament API Response (All States):', {
page: currentPage.value, page: currentPage.value,
perPage: 100, perPage: 100,
scope: 'USER', scope: tournamentScope.value,
states: [ states: [
'pending', 'pending',
'checking_in', 'checking_in',
@@ -513,7 +517,7 @@ async function loadMoreTournaments() {
const result = await queryAllTournaments(client.value, { const result = await queryAllTournaments(client.value, {
page: currentPage.value, page: currentPage.value,
per_page: 100, per_page: 100,
scopeType: ScopeType.USER scopeType: tournamentScope.value
}); });
tournaments.value = [...tournaments.value, ...result]; tournaments.value = [...tournaments.value, ...result];