Giving up on encryption

and life
This commit is contained in:
Isaac
2022-07-19 15:57:19 +01:00
parent 28f1e85759
commit 5786c3598d
7 changed files with 95 additions and 121 deletions

View File

@@ -1,4 +1,7 @@
const { EmbedBuilder } = require('discord.js');
const {
cleanCodeBlockContent,
EmbedBuilder,
} = require('discord.js');
const { diff: getDiff } = require('object-diffy');
function makeDiff({
@@ -8,12 +11,12 @@ function makeDiff({
const fields = [];
for (const key in diff) {
if (key === 'createdAt') continue; // object-diffy doesn't like dates
const from = diff[key].from === null ? '' : `- ${diff[key].from}\n`;
const to = diff[key].to === null ? '' : `+ ${diff[key].to}\n`;
const from = diff[key].from === null ? '' : `- ${diff[key].from.toString().replace(/\n/g, '\\n')}\n`;
const to = diff[key].to === null ? '' : `+ ${diff[key].to.toString().replace(/\n/g, '\\n')}\n`;
fields.push({
inline: true,
name: key,
value: `\`\`\`diff\n${from + to}\n\`\`\``,
value: `\`\`\`diff\n${cleanCodeBlockContent(from + to)}\n\`\`\``,
});
}
return fields;

View File

@@ -1,69 +0,0 @@
const Cryptr = require('cryptr');
const cryptr = new Cryptr(process.env.ENCRYPTION_KEY);
const fields = [
'name',
'content',
'username',
'displayName',
// 'channelName',
'openingMessage',
'description',
'value',
'placeholder',
'closedReason',
'topic',
'comment',
'label',
'regex',
];
const shouldEncrypt = ['create', 'createMany', 'update', 'updateMany', 'upsert'];
// const shouldDecrypt = ['findUnique', 'findFirst', 'findMany'];
module.exports = log => {
const encrypt = obj => {
for (const prop in obj) {
if (obj.hasOwnProperty(prop)) {
if (typeof obj[prop] === 'object') {
obj[prop] = encrypt(obj[prop]);
} else if (typeof obj[prop] === 'string' && obj[prop].length !== 0 && fields.includes(prop)) {
try {
obj[prop] = cryptr.encrypt(obj[prop]);
} catch (error) {
log.warn(`Failed to encrypt ${prop}`);
log.debug(error);
}
}
}
}
return obj;
};
const decrypt = obj => {
for (const prop in obj) {
if (obj.hasOwnProperty(prop)) {
if (typeof obj[prop] === 'object') {
obj[prop] = decrypt(obj[prop]);
} else if (typeof obj[prop] === 'string' && obj[prop].length !== 0 && fields.includes(prop)) {
try {
obj[prop] = cryptr.decrypt(obj[prop]);
} catch (error) {
log.warn(`Failed to decrypt ${prop}`);
log.debug(error);
}
}
}
}
return obj;
};
return async (params, next) => {
if (params.args.data && shouldEncrypt.includes(params.action)) params.args = encrypt(params.args);
let result = await next(params);
// if (result && shouldDecrypt.includes(params.action)) result = decrypt(result);
if (result) result = decrypt(result);
return result;
};
};