mongodb-chatbot-server
Version:
A chatbot server for retrieval augmented generation (RAG).
63 lines • 2.51 kB
JavaScript
;
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