MCPcopy
hub / github.com/codebymitch/TitanBot / execute

Function execute

src/interactions/modals/ticketFeedbackComment.js:18–119  ·  view source on GitHub ↗
(interaction, client, args)

Source from the content-addressed store, hash-verified

16 name: 'ticket_feedback_comment_modal',
17
18 async execute(interaction, client, args) {
19 const [guildId, channelId] = args;
20
21 if (!guildId || !channelId) {
22 await InteractionHelper.safeReply(interaction, {
23 embeds: [buildEmbed(
24 '⚠️ Invalid Feedback Submission',
25 'This feedback form appears to be malformed.',
26 getColor('error'),
27 )],
28 flags: MessageFlags.Ephemeral,
29 });
30 return;
31 }
32
33 const comment = interaction.fields.getTextInputValue('feedback_comment')?.trim();
34 if (!comment) {
35 await InteractionHelper.safeReply(interaction, {
36 embeds: [buildEmbed(
37 '⚠️ Empty Feedback',
38 'Please enter a comment before submitting your feedback.',
39 getColor('warning'),
40 )],
41 flags: MessageFlags.Ephemeral,
42 });
43 return;
44 }
45
46 const deferred = await InteractionHelper.safeDefer(interaction, { flags: MessageFlags.Ephemeral });
47 if (!deferred) {
48 return;
49 }
50
51 let ticketData;
52 try {
53 ticketData = await getTicketData(guildId, channelId);
54 } catch (err) {
55 logger.warn('ticketFeedbackComment: failed to load ticket data', { guildId, channelId, error: err.message });
56 }
57
58 if (!ticketData) {
59 await InteractionHelper.safeEditReply(interaction, {
60 embeds: [buildEmbed(
61 '⚠️ Ticket Not Found',
62 'Could not find the ticket associated with this feedback.',
63 getColor('error'),
64 )],
65 });
66 return;
67 }
68
69 if (interaction.user.id !== ticketData.userId) {
70 await InteractionHelper.safeEditReply(interaction, {
71 embeds: [buildEmbed(
72 '❌ Not Allowed',
73 'Only the ticket creator can submit feedback for this ticket.',
74 getColor('error'),
75 )],

Callers

nothing calls this directly

Calls 8

getColorFunction · 0.90
getTicketDataFunction · 0.90
saveTicketDataFunction · 0.90
logTicketFeedbackFunction · 0.90
buildEmbedFunction · 0.85
safeReplyMethod · 0.80
safeDeferMethod · 0.80
safeEditReplyMethod · 0.80

Tested by

no test coverage detected