LibreChat/config/delete-banner.js

62 lines
1.8 KiB
JavaScript

const path = require('path');
const mongoose = require(path.resolve(__dirname, '..', 'api', 'node_modules', 'mongoose'));
const { Banner } = require('@librechat/data-schemas').createModels(mongoose);
require('module-alias')({ base: path.resolve(__dirname, '..', 'api') });
const { askQuestion, silentExit } = require('./helpers');
const connect = require('./connect');
(async () => {
await connect();
console.purple('--------------------------');
console.purple('Delete the banner!');
console.purple('--------------------------');
const now = new Date();
try {
const banner = await Banner.findOne({
displayFrom: { $lte: now },
$or: [{ displayTo: { $gte: now } }, { displayTo: null }],
});
if (!banner) {
console.yellow('No banner found to delete.');
silentExit(0);
}
console.purple('Current banner:');
console.log(`Message: ${banner.message}`);
console.log(`Display From: ${banner.displayFrom}`);
console.log(`Display To: ${banner.displayTo || 'Not specified'}`);
console.log(`Is Public: ${banner.isPublic}`);
const confirmDelete = await askQuestion('Do you want to delete this banner? (y/N): ');
if (confirmDelete.toLowerCase() === 'y') {
await Banner.findByIdAndDelete(banner._id);
console.green('Banner deleted successfully!');
} else {
console.yellow('Banner deletion cancelled.');
}
} catch (error) {
console.red('Error: ' + error.message);
console.error(error);
silentExit(1);
}
silentExit(0);
})();
process.on('uncaughtException', (err) => {
if (!err.message.includes('fetch failed')) {
console.error('There was an uncaught error:');
console.error(err);
}
if (err.message.includes('fetch failed')) {
return;
} else {
process.exit(1);
}
});