Skip to content

Commit 2298a4d

Browse files
Refactor
1 parent 4c5dc72 commit 2298a4d

1 file changed

Lines changed: 13 additions & 6 deletions

File tree

cogs/make_member.py

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ class MakeMemberBaseCog(TeXBotBaseCog):
6363

6464
async def perform_make_member(
6565
self, user: discord.User | discord.Member, raw_group_member_id: str
66-
) -> str:
66+
) -> tuple[bool, str]:
6767
"""Perform the actions to make a user a member."""
6868
member_role: discord.Role = await self.bot.member_role
6969
discord_member: discord.Member = await self.bot.get_main_guild_member(user)
@@ -73,15 +73,16 @@ async def perform_make_member(
7373
)
7474

7575
if not re.fullmatch(r"\A\d{7}\Z", raw_group_member_id):
76-
return INVALID_GROUP_MEMBER_ID_MESSAGE
76+
return False, INVALID_GROUP_MEMBER_ID_MESSAGE
7777

7878
try:
7979
group_member_id: int = int(raw_group_member_id)
8080
except ValueError:
81-
return INVALID_GROUP_MEMBER_ID_MESSAGE
81+
return False, INVALID_GROUP_MEMBER_ID_MESSAGE
8282

8383
if member_role in discord_member.roles:
8484
return (
85+
False,
8586
":information_source: No changes made. "
8687
"You're already a member - why are you trying this again? "
8788
":information_source:"
@@ -93,13 +94,15 @@ async def perform_make_member(
9394
)
9495
).aexists():
9596
return (
97+
False,
9698
":information_source: This student ID has already been used. "
9799
"Please contact a committee member if you think this is a mistake."
98100
" :information_source:"
99101
)
100102

101103
if not await is_id_a_community_group_member(member_id=group_member_id):
102104
return (
105+
False,
103106
f"You must be a member of {self.bot.group_full_name} "
104107
"to use this command.\n"
105108
f"The provided {_GROUP_MEMBER_ID_ARGUMENT_NAME} must match "
@@ -152,7 +155,7 @@ async def perform_make_member(
152155
reason=f"{discord_member} used TeX-Bot to become a member.",
153156
)
154157

155-
return ":information_source: Successfully made you a member!"
158+
return True, ":information_source: Successfully made you a member!"
156159

157160

158161
class MakeMemberCommandCog(MakeMemberBaseCog):
@@ -207,10 +210,14 @@ async def make_member(
207210
await ctx.defer(ephemeral=True)
208211

209212
async with ctx.typing():
210-
message: str = await self.perform_make_member(
213+
status, message = await self.perform_make_member(
211214
user=ctx.user, raw_group_member_id=raw_group_member_id
212215
)
213216

217+
if not status:
218+
await self.command_send_error(ctx=ctx, message=message)
219+
return
220+
214221
await ctx.followup.send(content=message, ephemeral=True)
215222

216223

@@ -286,7 +293,7 @@ async def callback(self, interaction: discord.Interaction) -> None:
286293
)
287294
return
288295

289-
message: str = await cog.perform_make_member(
296+
_, message = await cog.perform_make_member(
290297
user=interaction.user, raw_group_member_id=raw_student_id
291298
)
292299

0 commit comments

Comments
 (0)