LibreChat/api/models/Banner.js

31 lines
790 B
JavaScript
Raw Normal View History

const mongoose = require('mongoose');
const { logger } = require('@librechat/data-schemas');
const Banner = mongoose.models.Banner;
/**
* Retrieves the current active banner.
* @returns {Promise<Object|null>} The active banner object or null if no active banner is found.
*/
const getBanner = async (user) => {
try {
const now = new Date();
2025-05-30 04:28:22 -04:00
const banner = await Banner.findOne({
displayFrom: { $lte: now },
$or: [{ displayTo: { $gte: now } }, { displayTo: null }],
type: 'banner',
}).lean();
if (!banner || banner.isPublic || user) {
return banner;
}
return null;
} catch (error) {
logger.error('[getBanners] Error getting banners', error);
throw new Error('Error getting banners');
}
};
module.exports = { getBanner };