mirror of
https://github.com/Hessenuk/DiscordTickets.git
synced 2025-09-06 18:21:25 +03:00
feat(api): export data as zip
This commit is contained in:
36
src/lib/workers/export.js
Normal file
36
src/lib/workers/export.js
Normal file
@@ -0,0 +1,36 @@
|
||||
const { expose } = require('threads/worker');
|
||||
const Cryptr = require('cryptr');
|
||||
const { decrypt } = new Cryptr(process.env.ENCRYPTION_KEY);
|
||||
|
||||
function decryptIfExists(encrypted) {
|
||||
if (encrypted) return decrypt(encrypted);
|
||||
return null;
|
||||
}
|
||||
|
||||
expose({
|
||||
exportTicket(ticket) {
|
||||
if (ticket.closedReason) ticket.closedReason = decrypt(ticket.closedReason);
|
||||
if (ticket.feedback?.comment) ticket.feedback.comment = decrypt(ticket.feedback.comment);
|
||||
if (ticket.topic) ticket.topic = decrypt(ticket.topic);
|
||||
|
||||
ticket.archivedMessages = ticket.archivedMessages.map(async message => {
|
||||
message.content = decryptIfExists(message.content);
|
||||
return message;
|
||||
});
|
||||
|
||||
ticket.archivedUsers = ticket.archivedUsers.map(async user => {
|
||||
user.displayName = decryptIfExists(user.displayName);
|
||||
user.username = decryptIfExists(user.username);
|
||||
return user;
|
||||
});
|
||||
|
||||
ticket.questionAnswers = ticket.questionAnswers.map(async answer => {
|
||||
if (answer.value) answer.value = decryptIfExists(answer.value);
|
||||
return answer;
|
||||
});
|
||||
|
||||
delete ticket.guildId;
|
||||
|
||||
return JSON.stringify(ticket);
|
||||
},
|
||||
});
|
Reference in New Issue
Block a user