Refactor ephemeral message handling in ticket interactions
- Updated ticket command and interaction responses to utilize the new `ephemeral()` function for consistent ephemeral message handling. - Enhanced error handling for member fetching in ticket interactions, ensuring proper responses when members are not found. - Improved localization for new error messages related to member presence in ticket commands. - Documented changes in phase tracking to reflect updates in ticket interaction responses.
This commit is contained in:
@@ -71,6 +71,15 @@ export class TicketPanelError extends Error {
|
||||
}
|
||||
}
|
||||
|
||||
function isUnknownChannelError(error: unknown): boolean {
|
||||
return Boolean(
|
||||
error &&
|
||||
typeof error === 'object' &&
|
||||
'code' in error &&
|
||||
(error as { code: unknown }).code === 10003
|
||||
);
|
||||
}
|
||||
|
||||
function botCanPostPanel(
|
||||
channel: GuildBasedChannel,
|
||||
meId: string
|
||||
@@ -707,7 +716,11 @@ async function fetchTicketMessages(
|
||||
timestamp: message.createdAt.toISOString()
|
||||
}));
|
||||
} catch (error) {
|
||||
logger.warn({ error, ticketId: ticket.id }, 'Failed to fetch ticket messages');
|
||||
if (isUnknownChannelError(error)) {
|
||||
logger.debug({ ticketId: ticket.id }, 'Ticket channel already gone while fetching messages');
|
||||
} else {
|
||||
logger.warn({ error, ticketId: ticket.id }, 'Failed to fetch ticket messages');
|
||||
}
|
||||
return [];
|
||||
}
|
||||
}
|
||||
@@ -1123,7 +1136,11 @@ export async function closeTicket(
|
||||
await channel.delete(`Ticket ${ticket.id} closed`);
|
||||
}
|
||||
} catch (error) {
|
||||
logger.warn({ error, ticketId: ticket.id }, 'Failed to delete ticket channel');
|
||||
if (isUnknownChannelError(error)) {
|
||||
logger.debug({ ticketId: ticket.id }, 'Ticket channel already gone while deleting');
|
||||
} else {
|
||||
logger.warn({ error, ticketId: ticket.id }, 'Failed to delete ticket channel');
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user