Skip to content

Commit 5336139

Browse files
committed
refactor: Update userStatsEmbed to return null on errors and include user roles in response
1 parent d1dda9e commit 5336139

File tree

2 files changed

+12
-7
lines changed

2 files changed

+12
-7
lines changed

src/commands/user/user.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,13 +45,14 @@ export class UserCommand {
4545
);
4646
}
4747

48-
const embed = await StatsService.userStatsEmbed(interaction, user);
48+
const userStats = await StatsService.userStatsEmbed(interaction, user);
4949

50-
if (typeof embed === "string") return await interaction.editReply(embed);
50+
if (typeof userStats?.embed === "string")
51+
return await interaction.editReply(userStats?.embed);
5152

5253
// return embed
5354
return await interaction.editReply({
54-
embeds: [embed],
55+
embeds: [userStats!.embed],
5556
allowedMentions: { users: [] },
5657
});
5758
}

src/lib/stats/stats.service.ts

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -104,11 +104,11 @@ export class StatsService {
104104
const memberId = user?.id ?? interaction.member?.user.id;
105105
const guildId = interaction.guild?.id;
106106

107-
if (!memberId || !guildId) return "Something went wrong";
107+
if (!memberId || !guildId) return null;
108108

109109
const embed = await StatsService.getUserStatsEmbed(memberId, guildId);
110110

111-
if (!embed) return "Something went wrong";
111+
if (!embed) return null;
112112

113113
return embed;
114114
}
@@ -132,7 +132,7 @@ export class StatsService {
132132
: null;
133133

134134
// Execute all initial queries in parallel
135-
const [lastVoice, lastMessage, helpCount, helpReceivedCount] =
135+
const [lastVoice, lastMessage, helpCount, helpReceivedCount, userRoles] =
136136
await Promise.all([
137137
prisma.guildVoiceEvents.findMany({
138138
where: { guildId, memberId },
@@ -150,6 +150,10 @@ export class StatsService {
150150
prisma.memberHelper.count({
151151
where: { guildId, threadOwnerId: memberId },
152152
}),
153+
prisma.memberRole.findMany({
154+
where: { memberId, guildId },
155+
select: { name: true, roleId: true },
156+
}),
153157
]);
154158

155159
// Execute stats queries in parallel
@@ -196,7 +200,7 @@ export class StatsService {
196200
oneDayVoiceSum,
197201
});
198202

199-
return embed;
203+
return { embed, roles: userRoles.map((role) => role.name) };
200204
}
201205

202206
static async voiceStats(memberId: string, guildId: string, lookback: number) {

0 commit comments

Comments
 (0)