diff --git a/ChatService/app/routes.js b/ChatService/app/routes.js index 250f5cedc7b68b273d0784fcefe9ad3540f3ea08..54a3371db2fb8d4b81fa11ffc3f38eba51755ce5 100644 --- a/ChatService/app/routes.js +++ b/ChatService/app/routes.js @@ -113,9 +113,106 @@ module.exports = function(app) { }); }); - // Chat Service - + // CHAT SERVICE + // Send message from passangger + app.post('/sendmessagefrompassangger', function(req, res){ + var senderToken = req.body.token; + var receiverId = Number (req.body.id); + var message = req.body.message; + FcmToken.findOne({'id' : receiverId}, function(err1, receiverToken){ + if(err1){ + var response = {"status" : 503, "message" : "Database error detected 1"}; + res.json(response); + } + else { + FcmToken.findOne({'token' : senderToken}, function(err2, senderId){ + if(err2){ + var response = {"status" : 503, "message" : "Database error detected 2"}; + res.json(response); + } + else { + Chat.findOne({'idUser' : senderId.id, 'idDriver' : receiverId}, function(err3, chat){ + if (err3){ + var response = {"status" : 503, "message" : "Database error detected 3"}; + res.json(response); + } + else { + if (!chat){ + Chat.create({'idUser' : senderId.id, 'idDriver' : receiverId}, function(err4, newChat){ + if (err4){ + var response = {"status" : 503, "message" : "Database error detected 4"}; + res.json(response); + } + else { + newChat.history = []; + newChat.history.push({'from' : senderId.id, 'to' : receiverId, 'message' : message}); + newChat.save(); + res.json({'status' : 200, 'message' : 'chat history created and message sent.'}); + } + }); + } + else { + chat.history.push({'from' : senderId.id, 'to' : receiverId, 'message' : message}); + chat.save(); + res.json({'status' : 200, 'message' : 'message sent.'}); + } + } + }); + } + }); + } + }); + }); + // Send message from driver + app.post('/sendmessagefromdriver', function(req, res){ + var senderToken = req.body.token; + var receiverId = Number (req.body.id); + var message = req.body.message; + FcmToken.findOne({'id' : receiverId}, function(err1, receiverToken){ + if(err1){ + var response = {"status" : 503, "message" : "Database error detected 1"}; + res.json(response); + } + else { + FcmToken.findOne({'token' : senderToken}, function(err2, senderId){ + if(err2){ + var response = {"status" : 503, "message" : "Database error detected 2"}; + res.json(response); + } + else { + Chat.findOne({'idUser' : receiverId.id, 'idDriver' : senderId}, function(err3, chat){ + if (err3){ + var response = {"status" : 503, "message" : "Database error detected 3"}; + res.json(response); + } + else { + if (!chat){ + Chat.create({'idUser' : receiverId.id, 'idDriver' : senderId}, function(err4, newChat){ + if (err4){ + var response = {"status" : 503, "message" : "Database error detected 4"}; + res.json(response); + } + else { + newChat.history = []; + newChat.history.push({'from' : senderId.id, 'to' : receiverId, 'message' : message}); + newChat.save(); + res.json({'status' : 200, 'message' : 'chat history created and message sent.'}); + } + }); + } + else { + chat.history.push({'from' : senderId.id, 'to' : receiverId, 'message' : message}); + chat.save(); + res.json({'status' : 200, 'message' : 'message sent.'}); + } + } + }); + } + }); + } + }); + }); // ====================== FRONTEND ROUTES ============================