| | const crypto = require('crypto'); |
| | const { sendEvent } = require('@librechat/api'); |
| | const { getResponseSender, Constants } = require('librechat-data-provider'); |
| | const { sendError } = require('~/server/middleware/error'); |
| | const { saveMessage } = require('~/models'); |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | const denyRequest = async (req, res, errorMessage) => { |
| | let responseText = errorMessage; |
| | if (typeof errorMessage === 'object') { |
| | responseText = JSON.stringify(errorMessage); |
| | } |
| |
|
| | const { messageId, conversationId: _convoId, parentMessageId, text } = req.body; |
| | const conversationId = _convoId ?? crypto.randomUUID(); |
| |
|
| | const userMessage = { |
| | sender: 'User', |
| | messageId: messageId ?? crypto.randomUUID(), |
| | parentMessageId, |
| | conversationId, |
| | isCreatedByUser: true, |
| | text, |
| | }; |
| | sendEvent(res, { message: userMessage, created: true }); |
| |
|
| | const shouldSaveMessage = _convoId && parentMessageId && parentMessageId !== Constants.NO_PARENT; |
| |
|
| | if (shouldSaveMessage) { |
| | await saveMessage( |
| | req, |
| | { ...userMessage, user: req.user.id }, |
| | { context: `api/server/middleware/denyRequest.js - ${responseText}` }, |
| | ); |
| | } |
| |
|
| | return await sendError(req, res, { |
| | sender: getResponseSender(req.body), |
| | messageId: crypto.randomUUID(), |
| | conversationId, |
| | parentMessageId: userMessage.messageId, |
| | text: responseText, |
| | shouldSaveMessage, |
| | user: req.user.id, |
| | }); |
| | }; |
| |
|
| | module.exports = denyRequest; |
| |
|