mirror of
https://github.com/danny-avila/LibreChat.git
synced 2025-09-22 08:12:00 +02:00
46 lines
1.3 KiB
JavaScript
46 lines
1.3 KiB
JavaScript
const Preset = require('./schema/presetSchema');
|
|
|
|
const getPreset = async (user, presetId) => {
|
|
try {
|
|
return await Preset.findOne({ user, presetId }).exec();
|
|
} catch (error) {
|
|
console.log(error);
|
|
return { message: 'Error getting single preset' };
|
|
}
|
|
};
|
|
|
|
module.exports = {
|
|
Preset,
|
|
getPreset,
|
|
getPresets: async (user, filter) => {
|
|
try {
|
|
return await Preset.find({ ...filter, user }).exec();
|
|
} catch (error) {
|
|
console.log(error);
|
|
return { message: 'Error retriving presets' };
|
|
}
|
|
},
|
|
savePreset: async (user, { presetId, newPresetId, ...preset }) => {
|
|
try {
|
|
const update = { presetId, ...preset };
|
|
if (newPresetId) {
|
|
update.presetId = newPresetId;
|
|
}
|
|
|
|
return await Preset.findOneAndUpdate(
|
|
{ presetId, user },
|
|
{ $set: update },
|
|
{ new: true, upsert: true }
|
|
).exec();
|
|
} catch (error) {
|
|
console.log(error);
|
|
return { message: 'Error saving preset' };
|
|
}
|
|
},
|
|
deletePresets: async (user, filter) => {
|
|
let toRemove = await Preset.find({ ...filter, user }).select('presetId');
|
|
const ids = toRemove.map((instance) => instance.presetId);
|
|
let deleteCount = await Preset.deleteMany({ ...filter, user }).exec();
|
|
return deleteCount;
|
|
}
|
|
};
|