2020)
2121from app .modules .sport_competition .dependencies_sport_competition import (
2222 get_current_edition ,
23+ has_user_competition_access ,
2324 is_competition_user ,
2425)
2526from app .modules .sport_competition .types_sport_competition import (
@@ -1554,6 +1555,20 @@ async def delete_product_quota(
15541555# region: Teams
15551556
15561557
1558+ @module .router .get (
1559+ "/competition/teams" ,
1560+ response_model = list [schemas_sport_competition .TeamComplete ],
1561+ )
1562+ async def get_teams (
1563+ db : AsyncSession = Depends (get_db ),
1564+ user : models_users .CoreUser = Depends (is_user ()),
1565+ edition : schemas_sport_competition .CompetitionEdition = Depends (
1566+ get_current_edition ,
1567+ ),
1568+ ) -> list [schemas_sport_competition .TeamComplete ]:
1569+ return await cruds_sport_competition .load_all_teams (edition .id , db )
1570+
1571+
15571572@module .router .get (
15581573 "/competition/teams/me" ,
15591574 response_model = schemas_sport_competition .TeamComplete ,
@@ -2543,6 +2558,23 @@ async def delete_location(
25432558# region: Matches
25442559
25452560
2561+ @module .router .get (
2562+ "/competition/matches" ,
2563+ response_model = list [schemas_sport_competition .MatchComplete ],
2564+ )
2565+ async def get_all_matches_for_edition (
2566+ edition : schemas_sport_competition .CompetitionEdition = Depends (
2567+ get_current_edition ,
2568+ ),
2569+ db : AsyncSession = Depends (get_db ),
2570+ user : models_users .CoreUser = Depends (is_user ()),
2571+ ) -> list [schemas_sport_competition .MatchComplete ]:
2572+ return await cruds_sport_competition .load_all_matches_by_edition_id (
2573+ edition .id ,
2574+ db ,
2575+ )
2576+
2577+
25462578@module .router .get (
25472579 "/competition/matches/sports/{sport_id}" ,
25482580 response_model = list [schemas_sport_competition .MatchComplete ],
@@ -2638,7 +2670,9 @@ async def create_match(
26382670 match_info : schemas_sport_competition .MatchBase ,
26392671 db : AsyncSession = Depends (get_db ),
26402672 user : schemas_sport_competition .CompetitionUser = Depends (
2641- is_competition_user (competition_group = CompetitionGroupType .sport_manager ),
2673+ has_user_competition_access (
2674+ competition_group = CompetitionGroupType .sport_manager ,
2675+ ),
26422676 ),
26432677 edition : schemas_sport_competition .CompetitionEdition = Depends (
26442678 get_current_edition ,
@@ -2699,8 +2733,10 @@ async def edit_match(
26992733 match_id : UUID ,
27002734 match_info : schemas_sport_competition .MatchEdit ,
27012735 db : AsyncSession = Depends (get_db ),
2702- user : schemas_sport_competition .CompetitionUser = Depends (
2703- is_competition_user (competition_group = CompetitionGroupType .sport_manager ),
2736+ user : models_users .CoreUser = Depends (
2737+ has_user_competition_access (
2738+ competition_group = CompetitionGroupType .sport_manager ,
2739+ ),
27042740 ),
27052741 edition : schemas_sport_competition .CompetitionEdition = Depends (
27062742 get_current_edition ,
@@ -2736,7 +2772,7 @@ async def delete_match(
27362772 match_id : UUID ,
27372773 db : AsyncSession = Depends (get_db ),
27382774 user : schemas_users .CoreUser = Depends (
2739- is_competition_user (
2775+ has_user_competition_access (
27402776 competition_group = CompetitionGroupType .sport_manager ,
27412777 ),
27422778 ),
@@ -2773,7 +2809,7 @@ async def get_global_podiums(
27732809
27742810
27752811@module .router .get (
2776- "/competition/podiums/sport /{sport_id}" ,
2812+ "/competition/podiums/sports /{sport_id}" ,
27772813 response_model = list [schemas_sport_competition .TeamSportResultComplete ],
27782814 status_code = 200 ,
27792815)
@@ -2798,7 +2834,7 @@ async def get_sport_podiums(
27982834
27992835
28002836@module .router .get (
2801- "/competition/podiums/school /{school_id}" ,
2837+ "/competition/podiums/schools /{school_id}" ,
28022838 response_model = list [schemas_sport_competition .TeamSportResultComplete ],
28032839 status_code = 200 ,
28042840)
@@ -2823,7 +2859,7 @@ async def get_school_podiums(
28232859
28242860
28252861@module .router .post (
2826- "/competition/podiums/sport /{sport_id}" ,
2862+ "/competition/podiums/sports /{sport_id}" ,
28272863 response_model = list [schemas_sport_competition .TeamSportResult ],
28282864 status_code = 201 ,
28292865)
@@ -2832,7 +2868,7 @@ async def create_sport_podium(
28322868 rankings : schemas_sport_competition .SportPodiumRankings ,
28332869 db : AsyncSession = Depends (get_db ),
28342870 user : models_users .CoreUser = Depends (
2835- is_competition_user (
2871+ has_user_competition_access (
28362872 competition_group = CompetitionGroupType .sport_manager ,
28372873 ),
28382874 ),
@@ -2873,14 +2909,14 @@ async def create_sport_podium(
28732909
28742910
28752911@module .router .delete (
2876- "/competition/podiums/sport /{sport_id}" ,
2912+ "/competition/podiums/sports /{sport_id}" ,
28772913 status_code = 204 ,
28782914)
28792915async def delete_sport_podium (
28802916 sport_id : UUID ,
28812917 db : AsyncSession = Depends (get_db ),
28822918 user : models_users .CoreUser = Depends (
2883- is_competition_user (
2919+ has_user_competition_access (
28842920 competition_group = CompetitionGroupType .sport_manager ,
28852921 ),
28862922 ),
0 commit comments