MCPcopy Index your code
hub / github.com/codebymitch/TitanBot / createTicketLogEmbed

Function createTicketLogEmbed

src/utils/ticketLogging.js:111–247  ·  view source on GitHub ↗
(guild, event)

Source from the content-addressed store, hash-verified

109};
110
111async function createTicketLogEmbed(guild, event) {
112 const style = TICKET_EVENT_STYLES[event.type] || { color: 0x95a5a6, title: 'Ticket Event' };
113 const ticketNumber = event.ticketNumber || event.ticketId;
114 const ticketRef = ticketNumber ? `#${ticketNumber}` : 'Unknown';
115 const channelMention = event.ticketId ? `<#${event.ticketId}>` : null;
116 const executorMention = event.executorId ? `<@${event.executorId}>` : null;
117 const userMention = event.userId ? `<@${event.userId}>` : null;
118
119 let inlineFields = [];
120 let fields = [];
121 let author = null;
122 let footer = { text: 'TitanBot Ticketing' };
123
124 switch (event.type) {
125 case 'open':
126 author = await resolveUserAuthor(guild.client, event.userId);
127 inlineFields = [
128 { name: 'Ticket', value: ticketRef, inline: true },
129 { name: 'Creator', value: userMention || 'Unknown', inline: true },
130 ];
131 if (channelMention) {
132 inlineFields.push({ name: 'Channel', value: channelMention, inline: true });
133 }
134 if (event.reason) {
135 fields.push({ name: 'Reason', value: String(event.reason).slice(0, 1024), inline: false });
136 }
137 break;
138
139 case 'close':
140 author = await resolveUserAuthor(guild.client, event.executorId);
141 inlineFields = [
142 { name: 'Ticket', value: ticketRef, inline: true },
143 { name: 'Closed by', value: executorMention || 'Unknown', inline: true },
144 ];
145 if (channelMention) {
146 inlineFields.push({ name: 'Channel', value: channelMention, inline: true });
147 }
148 if (event.reason) {
149 fields.push({ name: 'Reason', value: String(event.reason).slice(0, 1024), inline: false });
150 }
151 break;
152
153 case 'delete':
154 author = await resolveUserAuthor(guild.client, event.executorId);
155 inlineFields = [
156 { name: 'Ticket', value: ticketRef, inline: true },
157 { name: 'Deleted by', value: executorMention || 'Unknown', inline: true },
158 ];
159 break;
160
161 case 'claim':
162 case 'unclaim':
163 author = await resolveUserAuthor(guild.client, event.executorId);
164 inlineFields = [
165 { name: 'Ticket', value: ticketRef, inline: true },
166 {
167 name: event.type === 'claim' ? 'Claimed by' : 'Unclaimed by',
168 value: executorMention || 'Unknown',

Callers 1

logTicketEventFunction · 0.85

Calls 3

resolveUserAuthorFunction · 0.90
formatRatingStarsFunction · 0.90
buildStandardLogEmbedFunction · 0.90

Tested by

no test coverage detected