77from discord .ext import commands
88from discord .ext .commands import BadArgument
99
10+ from db .models import Club
1011from src .client import ClubSchema # noqa TC001
11- from src .services .club import ClubService , DiscordClub
12+ from src .services .club import ClubExists , ClubService
1213from src .settings import Settings
1314
1415if TYPE_CHECKING :
@@ -63,14 +64,14 @@ async def remove_club_member(
6364 member : Member ,
6465 ):
6566 await interaction .response .defer (thinking = True )
66- discord_club = DiscordClub .load (club .id )
67- role_membre = utils .get (member .guild .roles , id = discord_club .member_role_id )
68- if not discord_club :
67+ db_club = Club .get_or_none (Club .sith_id == club .id )
68+ if not db_club :
6969 await interaction .followup .send (f"Le club : { club .name } n'existe pas" )
7070 return
71+ role_membre = utils .get (member .guild .roles , id = db_club .member_role_id )
7172 if (
7273 not interaction .user .guild_permissions .manage_roles
73- and not interaction .user .get_role (discord_club .president_role_id )
74+ and not interaction .user .get_role (db_club .president_role_id )
7475 ):
7576 await interaction .followup .send (
7677 "Seul le président du club et les admins peuvent retirer un membre"
@@ -79,7 +80,7 @@ async def remove_club_member(
7980 if role_membre not in member .roles :
8081 await interaction .followup .send ("Cet utilisateur n'est pas dans le club" )
8182 return
82- await self .club_service .remove_member (discord_club , member )
83+ await self .club_service .remove_member (db_club , member )
8384 await interaction .followup .send (
8485 f"{ member .name } a été retiré du club :thumbs_up:"
8586 )
@@ -93,14 +94,14 @@ async def add_club_member(
9394 member : Member ,
9495 ):
9596 await interaction .response .defer (thinking = True )
96- discord_club = DiscordClub . load ( club .id )
97- role_membre = utils . get ( member .guild .roles , id = discord_club .member_role_id )
98- if not discord_club :
97+ db_club = Club . get_or_none ( Club . sith_id == club .id )
98+ role_membre = member .guild .get_role ( db_club .member_role_id )
99+ if not db_club :
99100 await interaction .followup .send (f"Le club : { club .name } n'existe pas" )
100101 return
101102 if (
102103 not interaction .user .guild_permissions .manage_roles
103- and not interaction .user .get_role (discord_club .president_role_id )
104+ and not interaction .user .get_role (db_club .president_role_id )
104105 ):
105106 await interaction .followup .send (
106107 "Seul le président du club et les admins peuvent ajouter un membre"
@@ -109,7 +110,7 @@ async def add_club_member(
109110 if role_membre in member .roles :
110111 await interaction .followup .send ("Cet utilisateur est déjà dans le club" )
111112 return
112- await self .club_service .add_member (discord_club , member )
113+ await self .club_service .add_member (db_club , member )
113114 await interaction .followup .send (
114115 f"{ member .name } a été ajouté au club :thumbs_up:"
115116 )
@@ -121,8 +122,10 @@ async def create_club(
121122 self , interaction : Interaction , club : Transform [ClubSchema , ClubTransformer ]
122123 ):
123124 await interaction .response .defer (thinking = True )
124- discord_club = DiscordClub .load (club .id )
125- if discord_club is not None :
125+ try :
126+ await self .club_service .create_club (club , interaction .guild )
127+ await interaction .followup .send (f"Le club : { club .name } à été créé" )
128+ except ClubExists :
126129 await interaction .followup .send (f"Le club : { club .name } existe déjà..." )
127130 else :
128131 await self .club_service .create_club (club , interaction .guild )
@@ -139,16 +142,16 @@ async def handover(
139142 new_treasurer : Member ,
140143 ):
141144 await interaction .response .defer (thinking = True )
142- discord_club = DiscordClub . load ( club .id )
145+ db_club = Club . get_or_none ( Club . sith_id == club .id )
143146 guild = interaction .guild
144147
145- if not discord_club :
148+ if not db_club :
146149 await interaction .followup .send (f"Le club : { club .name } n'existe pas" )
147150 return
148151
149152 await self .club_service .handover (club , new_president , new_treasurer , guild )
150153 annonce = await self .club_service .get_channel (
151- guild , discord_club .category_id , f"annonces { club .name } " .lower ()
154+ guild , db_club .category_id , f"annonces { club .name } " .lower ()
152155 )
153156
154157 if annonce :
@@ -157,12 +160,11 @@ async def handover(
157160 f"le nouveau président du club { club .name } "
158161 f" et { new_treasurer .mention } le nouveau trésorier !!"
159162 )
160-
161163 else :
162164 await interaction .followup .send (
163165 "Attention, ce club n'a pas ses salons de discussion.\n "
164166 "La passation va quand même se faire, mais il faut "
165- "contacter un des mainteneurs du bots pour remettre "
167+ "contacter un des mainteneurs du bot pour remettre "
166168 "les salons en place"
167169 )
168170 await interaction .followup .send ("Passation effectuée" )
@@ -174,16 +176,15 @@ async def stop_club(
174176 self , interaction : Interaction , club : Transform [ClubSchema , ClubTransformer ]
175177 ):
176178 await interaction .response .defer (thinking = True )
177- guild = interaction .guild
178- discord_club = DiscordClub .load (club .id )
179- await self .club_service .stop_club (discord_club , interaction .guild )
179+ db_club = Club .get_or_none (Club .sith_id == club .id )
180+ await self .club_service .stop_club (db_club , interaction .guild )
180181 annonce = await self .club_service .get_channel (
181- guild , discord_club .category_id , f"annonces { club .name } " .lower ()
182+ interaction . guild , db_club .category_id , f"annonces { club .name } " .lower ()
182183 )
183184
184185 if annonce :
185186 await annonce .send (
186187 "Le club, n'ayant pas été repris, est "
187188 "temporairement fermé jusqu'à reprise du club"
188189 )
189- await interaction .followup .send (f"Le club : { club .name } à été arrété " )
190+ await interaction .followup .send (f"Le club : { club .name } à été arrêté " )
0 commit comments