audit
This commit is contained in:
@@ -26,7 +26,7 @@ const { runEscalation, runDeescalation } = require('./commands');
|
||||
const { trackInteraction, trackError } = require('./analytics');
|
||||
const { pendingCloses } = require('./pendingCloses');
|
||||
const { increment } = require('../services/patternStore');
|
||||
const { logError } = require('../services/debugLog');
|
||||
const { logError, logSystem } = require('../services/debugLog');
|
||||
|
||||
const Ticket = mongoose.model('Ticket');
|
||||
const Transcript = mongoose.model('Transcript');
|
||||
@@ -497,8 +497,10 @@ async function handleConfirmClose(interaction, ticket) {
|
||||
});
|
||||
}
|
||||
|
||||
// DM the transcript to the ticket creator (Discord-originated tickets)
|
||||
if (ticket.gmailThreadId?.startsWith('discord-')) {
|
||||
// DM the transcript to the ticket creator (Discord-originated tickets).
|
||||
// Gated because many users have DMs from server members disabled — the send
|
||||
// then 50007s and generates noise. Default off; enable via env when desired.
|
||||
if (CONFIG.TRANSCRIPT_DM_TO_CREATOR && ticket.gmailThreadId?.startsWith('discord-')) {
|
||||
const creatorId = ticket.gmailThreadId.split('-').pop();
|
||||
try {
|
||||
const creator = await interaction.client.users.fetch(creatorId);
|
||||
@@ -515,7 +517,15 @@ async function handleConfirmClose(interaction, ticket) {
|
||||
files: [dmFile]
|
||||
});
|
||||
} catch (dmErr) {
|
||||
console.warn(`Could not DM transcript to user ${creatorId}:`, dmErr.message);
|
||||
// 50007 = "Cannot send messages to this user" — user has DMs off. Expected class; debug-level only.
|
||||
if (dmErr?.code === 50007) {
|
||||
logSystem('Transcript DM skipped (recipient has DMs disabled)', [
|
||||
{ name: 'User', value: creatorId },
|
||||
{ name: 'Channel', value: channelName }
|
||||
]).catch(() => {});
|
||||
} else {
|
||||
logError('transcript-dm', dmErr).catch(() => {});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -643,6 +653,7 @@ async function handleTicketModal(interaction) {
|
||||
}
|
||||
parentCategoryIdForTicket = parentId;
|
||||
try {
|
||||
// TODO(queue-migrate): initial permissionOverwrites here are fine since the channel is just being created, but any later permissionOverwrites mutation on this channel should go through channelQueue.
|
||||
channel = await guild.channels.create({
|
||||
name: unclaimedName,
|
||||
type: ChannelType.GuildText,
|
||||
|
||||
Reference in New Issue
Block a user