| const crypto = require('crypto'); |
| const express = require('express'); |
| const { logger } = require('@librechat/data-schemas'); |
| const { getPresets, savePreset, deletePresets } = require('~/models'); |
| const requireJwtAuth = require('~/server/middleware/requireJwtAuth'); |
|
|
| const router = express.Router(); |
| router.use(requireJwtAuth); |
|
|
| router.get('/', async (req, res) => { |
| const presets = (await getPresets(req.user.id)).map((preset) => preset); |
| res.status(200).json(presets); |
| }); |
|
|
| router.post('/', async (req, res) => { |
| const update = req.body || {}; |
|
|
| update.presetId = update?.presetId || crypto.randomUUID(); |
|
|
| try { |
| const preset = await savePreset(req.user.id, update); |
| res.status(201).json(preset); |
| } catch (error) { |
| logger.error('[/presets] error saving preset', error); |
| res.status(500).send('There was an error when saving the preset'); |
| } |
| }); |
|
|
| router.post('/delete', async (req, res) => { |
| let filter = {}; |
| const { presetId } = req.body || {}; |
|
|
| if (presetId) { |
| filter = { presetId }; |
| } |
|
|
| logger.debug('[/presets/delete] delete preset filter', filter); |
|
|
| try { |
| const deleteCount = await deletePresets(req.user.id, filter); |
| res.status(201).json(deleteCount); |
| } catch (error) { |
| logger.error('[/presets/delete] error deleting presets', error); |
| res.status(500).send('There was an error deleting the presets'); |
| } |
| }); |
|
|
| module.exports = router; |
|
|