mirror of
https://github.com/ItzCrazyKns/Perplexica.git
synced 2025-06-18 07:48:35 +00:00
feat(app): add chats route
This commit is contained in:
45
src/routes/chats.ts
Normal file
45
src/routes/chats.ts
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
import express from 'express';
|
||||||
|
import logger from '../utils/logger';
|
||||||
|
import db from '../db/index';
|
||||||
|
import { eq } from 'drizzle-orm';
|
||||||
|
import { chats, messages } from '../db/schema';
|
||||||
|
|
||||||
|
const router = express.Router();
|
||||||
|
|
||||||
|
router.get('/', async (_, res) => {
|
||||||
|
try {
|
||||||
|
let chats = await db.query.chats.findMany();
|
||||||
|
|
||||||
|
/* Reorder the chats (in opposite direction) */
|
||||||
|
|
||||||
|
chats = chats.reverse();
|
||||||
|
|
||||||
|
return res.status(200).json({ chats: chats });
|
||||||
|
} catch (err) {
|
||||||
|
res.status(500).json({ message: 'An error has occurred.' });
|
||||||
|
logger.error(`Error in getting chats: ${err.message}`);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
router.get('/:id', async (req, res) => {
|
||||||
|
try {
|
||||||
|
const chatExists = await db.query.chats.findFirst({
|
||||||
|
where: eq(chats.id, req.params.id),
|
||||||
|
});
|
||||||
|
|
||||||
|
if (!chatExists) {
|
||||||
|
return res.status(404).json({ message: 'Chat not found' });
|
||||||
|
}
|
||||||
|
|
||||||
|
const chatMessages = await db.query.messages.findMany({
|
||||||
|
where: eq(messages.chatId, req.params.id),
|
||||||
|
});
|
||||||
|
|
||||||
|
return res.status(200).json({ chat: chatExists, messages: chatMessages });
|
||||||
|
} catch (err) {
|
||||||
|
res.status(500).json({ message: 'An error has occurred.' });
|
||||||
|
logger.error(`Error in getting chat: ${err.message}`);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
export default router;
|
@ -4,6 +4,7 @@ import videosRouter from './videos';
|
|||||||
import configRouter from './config';
|
import configRouter from './config';
|
||||||
import modelsRouter from './models';
|
import modelsRouter from './models';
|
||||||
import suggestionsRouter from './suggestions';
|
import suggestionsRouter from './suggestions';
|
||||||
|
import chatsRouter from './chats';
|
||||||
|
|
||||||
const router = express.Router();
|
const router = express.Router();
|
||||||
|
|
||||||
@ -12,5 +13,6 @@ router.use('/videos', videosRouter);
|
|||||||
router.use('/config', configRouter);
|
router.use('/config', configRouter);
|
||||||
router.use('/models', modelsRouter);
|
router.use('/models', modelsRouter);
|
||||||
router.use('/suggestions', suggestionsRouter);
|
router.use('/suggestions', suggestionsRouter);
|
||||||
|
router.use('/chats', chatsRouter);
|
||||||
|
|
||||||
export default router;
|
export default router;
|
||||||
|
Reference in New Issue
Block a user