Skip to content

Commit 2ada475

Browse files
committed
iwp
1 parent c2d6cc7 commit 2ada475

2 files changed

Lines changed: 67 additions & 4 deletions

File tree

UNUSED_FUNCTIONS_ANALYSIS.md

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
# Function Usage Analysis
2+
3+
## Summary
4+
All tournament functions appear to be **USED**. No unused functions found.
5+
6+
## Function Usage Details
7+
8+
### ✅ All Functions Are Used
9+
10+
#### Core Tournament Functions
11+
- `advance_round_robin_teams` - Used in `update_tournament_bracket.sql`
12+
- `advance_byes_for_tournament` - Used in `seed_stage.sql`
13+
- `assign_seeds_to_teams` - Used in `triggers/tournaments.sql`
14+
- `assign_team_to_bracket_slot` - Used in `update_tournament_bracket.sql` and `schedule_tournament_match.sql`
15+
- `check_round_robin_stage_complete` - Used in `update_tournament_bracket.sql`
16+
- `check_team_eligibility` - Used in `triggers/tournament_team_roster.sql`
17+
- `check_tournament_finished` - Used in `update_tournament_bracket.sql`
18+
- `create_round_robin_matches` - Used in `update_tournament_stages.sql`
19+
- `delete_tournament_brackets_and_matches` - Used in `triggers/tournaments.sql` and `update_tournament_stages.sql`
20+
- `generate_bracket_order` - Used in `update_tournament_stages.sql`
21+
- `get_stage_team_counts` - Used in `update_tournament_stages.sql`
22+
- `get_team_next_round_bracket_id` - Used in `schedule_next_round_robin_matches.sql`
23+
- `is_tournament_match` - Used in `triggers/matches.sql` and Hasura metadata
24+
- `is_tournament_organizer` - Used in Hasura metadata (computed field)
25+
- `link_round_group_matches` - Used in `link_tournament_stage_matches.sql`
26+
- `link_stage_brackets` - Used in `link_tournament_stages.sql`
27+
- `link_tournament_stage_matches` - Used in `update_tournament_stages.sql`
28+
- `link_tournament_stages` - Used in `update_tournament_stages.sql`
29+
- `opponent_finished_previous_round` - Used in `schedule_next_round_robin_matches.sql`
30+
- `schedule_next_round_robin_matches` - Used in `update_tournament_bracket.sql`
31+
- `schedule_tournament_match` - Used in `update_tournament_bracket.sql` and `schedule_next_round_robin_matches.sql`
32+
- `seed_stage` - Used in `advance_round_robin_teams.sql`
33+
- `tournament_bracket_eta` - Used as computed field in Hasura metadata
34+
- `tournament_has_min_teams` - Used in `can_start_tournament.sql`, `can_close_tournament_registration.sql`, `triggers/tournaments.sql`, and Hasura metadata
35+
- `tournament_max_players_per_lineup` - Used in `check_team_eligibility.sql` and Hasura metadata
36+
- `tournament_min_players_per_lineup` - Used in `check_team_eligibility.sql` and Hasura metadata
37+
- `update_tournament_bracket` - Used in `triggers/matches.sql`
38+
- `update_tournament_stages` - Used in `triggers/tournaments.sql`
39+
- `calculate_tournament_bracket_start_times` - Used in `update_tournament_stages.sql` and `schedule_tournament_match.sql`
40+
41+
#### Permission Functions (All Used in Hasura Metadata)
42+
- `can_cancel_tournament` - Used in `triggers/tournaments.sql` and Hasura metadata
43+
- `can_close_tournament_registration` - Used in `triggers/tournaments.sql` and Hasura metadata
44+
- `can_join_tournament` - Used in Hasura metadata
45+
- `can_open_tournament_registration` - Used in `triggers/tournaments.sql` and Hasura metadata
46+
- `can_start_tournament` - Used in Hasura metadata
47+
48+
## Notes
49+
- All functions are either:
50+
1. Called by other functions/triggers
51+
2. Used as computed fields in Hasura GraphQL schema
52+
3. Used in permission checks via triggers
53+
54+
- No orphaned or unused functions detected in the tournaments directory.
55+
56+

hasura/functions/tournaments/can_join_tournament.sql

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,13 @@ CREATE OR REPLACE FUNCTION public.can_join_tournament(tournament public.tourname
44
DECLARE
55
on_roster boolean;
66
is_team_admin boolean;
7+
is_organizer boolean;
78
BEGIN
89
-- Check if tournament is cancelled or registration is not open
910
IF tournament.status IN ('Cancelled', 'CancelledMinTeams') THEN
1011
RETURN false;
1112
END IF;
1213

13-
IF tournament.status != 'RegistrationOpen' THEN
14-
RETURN false;
15-
END IF;
16-
1714
-- Check if the player is already on a roster for this tournament
1815
SELECT EXISTS (
1916
SELECT 1
@@ -26,6 +23,16 @@ BEGIN
2623
if(on_roster) THEN
2724
RETURN false;
2825
END IF;
26+
27+
is_organizer = hasura_session ->> 'x-hasura-role' = 'administrator' OR hasura_session ->> 'x-hasura-role' = 'tournament_organizer' ;
28+
29+
IF is_organizer AND tournament.status = 'Setup' THEN
30+
RETURN true;
31+
END IF;
32+
33+
IF tournament.status != 'RegistrationOpen' THEN
34+
RETURN false;
35+
END IF;
2936

3037
IF hasura_session ->> 'x-hasura-role' = 'administrator' OR hasura_session ->> 'x-hasura-role' = 'tournament_organizer' THEN
3138
RETURN true;

0 commit comments

Comments
 (0)