UNPKG

mongodb-chatbot-server

Version:

A chatbot server for retrieval augmented generation (RAG).

63 lines 2.51 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.makeGetConversationRoute = exports.GetConversationRequest = void 0; const mongodb_1 = require("mongodb-rag-core/mongodb"); const utils_1 = require("../../utils"); const utils_2 = require("./utils"); const zod_1 = require("zod"); const validateRequestSchema_1 = require("../../middleware/validateRequestSchema"); exports.GetConversationRequest = validateRequestSchema_1.SomeExpressRequest.merge(zod_1.z.object({ headers: zod_1.z.object({ "req-id": zod_1.z.string(), }), params: zod_1.z.object({ conversationId: zod_1.z.string(), }), })); function makeGetConversationRoute({ conversations, }) { return async (req, res) => { const reqId = (0, utils_1.getRequestId)(req); try { const { conversationId: conversationIdStr } = req.params; if (!conversationIdStr || !mongodb_1.ObjectId.isValid(conversationIdStr)) { throw (0, utils_2.makeRequestError)({ httpStatus: 400, message: "Invalid conversation ID", }); } const conversationId = new mongodb_1.ObjectId(conversationIdStr); const conversationInDb = await conversations.findById({ _id: conversationId, }); if (!conversationInDb) { throw (0, utils_2.makeRequestError)({ message: "Conversation not found", httpStatus: 404, }); } const apiConversation = (0, utils_2.convertConversationFromDbToApi)(conversationInDb); (0, utils_1.logRequest)({ reqId, message: `Successfully retrieved conversation: ${apiConversation}`, }); return res.status(200).json(apiConversation); } catch (error) { const { httpStatus, message } = error.name === "RequestError" ? error : (0, utils_2.makeRequestError)({ message: error.message, stack: error.stack, httpStatus: 500, }); return (0, utils_1.sendErrorResponse)({ res, reqId, httpStatus, errorMessage: message, }); } }; } exports.makeGetConversationRoute = makeGetConversationRoute; //# sourceMappingURL=getConversation.js.map