@@ -68,19 +68,39 @@ export const searchUser = async (req, res) => {
6868
6969export const getMessages = async ( req , res ) => {
7070 try {
71- const { id } = req . params ;
72- const currentUserId = req . user . _id ;
71+ const { id : userToChatId } = req . params ;
72+ const myId = req . user . _id ;
73+
7374 const messages = await Message . find ( {
7475 $or : [
75- { senderId : currentUserId , receiverId : id } ,
76- { senderId : id , receiverId : currentUserId } ,
76+ { senderId : myId , receiverId : userToChatId } ,
77+ { senderId : userToChatId , receiverId : myId } ,
7778 ] ,
7879 } ) ;
7980
81+ await Message . updateMany (
82+ {
83+ senderId : userToChatId ,
84+ receiverId : myId ,
85+ seenAt : null ,
86+ } ,
87+ {
88+ seenAt : new Date ( ) ,
89+ }
90+ ) ;
91+
92+ const senderSocketId = getReceiverSocketId ( userToChatId ) ;
93+ if ( senderSocketId ) {
94+ io . to ( senderSocketId ) . emit ( "messagesSeen" , {
95+ seenBy : myId ,
96+ seenAt : new Date ( ) ,
97+ } ) ;
98+ }
99+
80100 res . status ( 200 ) . json ( messages ) ;
81- } catch ( e ) {
82- console . log ( e . message ) ;
83- res . status ( 500 ) . json ( { message : "Failed to fetch messages " } ) ;
101+ } catch ( error ) {
102+ console . log ( "Error in getMessages controller: " , error . message ) ;
103+ res . status ( 500 ) . json ( { error : "Internal server error " } ) ;
84104 }
85105} ;
86106
@@ -109,7 +129,7 @@ export const sendMessage = async (req, res) => {
109129 const docFile = req . files . document [ 0 ] ;
110130 const result = await uploadToCloudinary (
111131 docFile . buffer ,
112- "chatzy/messages/documents" ,
132+ "chatzy/messages/documents"
113133 ) ;
114134
115135 // console.log("Uploaded document:", docFile.originalname);
@@ -128,6 +148,7 @@ export const sendMessage = async (req, res) => {
128148 receiverId,
129149 image : imageUrl ,
130150 document : documentData ,
151+ seenAt : null ,
131152 } ) ;
132153 await message . save ( ) ;
133154
@@ -153,13 +174,13 @@ export const sendMessage = async (req, res) => {
153174
154175const sendChatBotMessage = async ( data ) => {
155176 try {
156- const genAI = new GoogleGenAI ( { apiKey : process . env . CHATBOT_API_KEY } ) ;
177+ const genAI = new GoogleGenAI ( { apiKey : process . env . CHATBOT_API_KEY } ) ;
157178
158179 const result = await genAI . models . generateContent ( {
159180 model : "gemini-2.5-flash" ,
160181 contents : data . prompt ,
161182 } ) ;
162-
183+
163184 const message = await Message . create ( {
164185 text : result . text ,
165186 senderId : chatBotId ,
@@ -174,7 +195,7 @@ const sendChatBotMessage = async (data) => {
174195 }
175196 } catch ( error ) {
176197 console . error ( "ChatBot Error:" , error . message ) ;
177-
198+
178199 try {
179200 const errorMessage = await Message . create ( {
180201 text : "I'm currently unavailable due to high demand. Please try again in a few minutes." ,
0 commit comments