mirror of
				https://github.com/ItzCrazyKns/Perplexica.git
				synced 2025-11-03 20:28:14 +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