From ada5cdf28e8edef4afcffc000fca1c1375a44e42 Mon Sep 17 00:00:00 2001 From: Irfan Ariq <irfanariq@home.com> Date: Wed, 29 Nov 2017 23:48:49 +0000 Subject: [PATCH] edit router.js --- ChatService/app/routes.js | 606 ++++++++++++++++++-------------------- 1 file changed, 284 insertions(+), 322 deletions(-) diff --git a/ChatService/app/routes.js b/ChatService/app/routes.js index 45e19693e..a283472be 100644 --- a/ChatService/app/routes.js +++ b/ChatService/app/routes.js @@ -1,346 +1,308 @@ module.exports = function(app) { - - // Load Models - var Driver = require('./models/driver'); - var FcmToken = require('./models/fcmtoken'); - var Chat = require('./models/chat'); - - - // We need this to build our post string - var querystring = require('querystring'); - var http = require('http'); - var fs = require('fs'); - - function sendMessages(to, codestring) { - // Build the post string from an object - var post_data = JSON.stringify({ - "notification": { - "title": "ini judul", - "body" : codestring, - "icon" : "firebase-logo.png", - "click-action" : "" - }, - "to": to - }); - - // An object of options to indicate where to post to - var post_options = { - host: 'fcm.googleapis.com', - path: '/fcm/send', - method: 'POST', - headers: { - 'Content-Type': 'application/json', - 'Authorization' : 'key=AAAAj5zwaR8:APA91bEs0mPlX_EKQFn3hBAkz7bUFJJt-3RW5eZ-EfBr4wHIhcMwRl6ka6COI3qaAU136KLjIC3TDHLS0M3QPbfG-SJLxG5fNACB9srlxViHNZkZ5TBpKNTxVkD5o9czlt0S3xeQZoGF', - 'Content-Length': Buffer.byteLength(post_data) - } - }; - - // Set up the request - var post_req = http.request(post_options, function(res) { - res.setEncoding('utf8'); - res.on('data', function (chunk) { - console.log('Response: ' + chunk); + + // Load Models + var Driver = require('./models/driver'); + var FcmToken = require('./models/fcmtoken'); + var Chat = require('./models/chat'); + + + // We need this to build our post string + var querystring = require('querystring'); + var http = require('http'); + var fs = require('fs'); + + function sendMessages(to, title, message) { + // Build the post string from an object + var post_data = JSON.stringify({ + "notification": { + "title": title, + "body" : codestring + // "icon" : "firebase-logo.png", + // "click-action" : "" + }, + "to": to + }); + + // An object of options to indicate where to post to + var post_options = { + host: 'fcm.googleapis.com', + path: '/fcm/send', + method: 'POST', + headers: { + 'Content-Type': 'application/json', + 'Authorization' : 'key=AAAAj5zwaR8:APA91bEs0mPlX_EKQFn3hBAkz7bUFJJt-3RW5eZ-EfBr4wHIhcMwRl6ka6COI3qaAU136KLjIC3TDHLS0M3QPbfG-SJLxG5fNACB9srlxViHNZkZ5TBpKNTxVkD5o9czlt0S3xeQZoGF', + 'Content-Length': Buffer.byteLength(post_data) + } + }; + + // Set up the request + var post_req = http.request(post_options, function(res) { + res.setEncoding('utf8'); + res.on('data', function (chunk) { + console.log('Response: ' + chunk); + }); }); + + // post the data + post_req.write(post_data); + post_req.end(); + } + + // ====================== SERVER ROUTES ============================ + + // FOR HANDLING DRIVER STATUS + // see available driver + Driver.remove({},function(err,some) { + if (err) return console.error; }); - - // post the data - post_req.write(post_data); - post_req.end(); - } - - - // Requirement to post to firebase-admin - // var admin = require("firebase-admin"); - // var serviceAccount = require("../config/serviceAccountKey.json"); - // console.log(serviceAccount); - - // admin.initializeApp({ - // credential: admin.credential.cert(serviceAccount), - // databaseURL: "https://chatservice-kia.firebaseio.com", - // }); - - // function sendMessages(to, message){ - // var message = { //this may vary according to the message type (single recipient, multicast, topic, et cetera) - // // to: to, - // notification: { - // title: 'Title of your push notification', - // body: 'Body of your push notification' - // }, - // data: { //you can send only notification or only data(or include both) - // // to: ro, - // message: message - // } - // }; - // admin.messaging().sendToDevice(to, message) - // .then(function(response) { - // console.log("response: ", response); - // }) - // .catch(function(err) { - // console.log("error: ", err); - // }); - // }; - - // ====================== SERVER ROUTES ============================ - - // FOR HANDLING DRIVER STATUS - // see available driver - Driver.remove({},function(err,some) { - if (err) return console.error; - }); - - app.get('/availabledriver', function(req, res){ - Driver.find({"status" : "available"}, function(err, foundDriver){ - res.json(foundDriver); + + app.get('/availabledriver', function(req, res){ + Driver.find({"status" : "available"}, function(err, foundDriver){ + res.json(foundDriver); + }); }); - }); - - var someDriver = new Driver({idDriver:7,status:"available"}); - someDriver.save(function(err,someDriver) { - if (err) return console.error(err); - }) - - app.get('/alldriver', function(req, res){ - Driver.find({}, function(err, foundDriver){ - res.json(foundDriver); + + // var someDriver = new Driver({idDriver:7,status:"available"}); + // someDriver.save(function(err,someDriver) { + // if (err) return console.error(err); + // }) + + app.get('/alldriver', function(req, res){ + Driver.find({}, function(err, foundDriver){ + res.json(foundDriver); + }); }); - }); - - // driver want to find order - app.post('/findorder', function(req, res){ - Driver.findOne({"idDriver" : Number (req.body.id)}, function(err, foundDriver){ - if (err){ - var response = {"status" : 503, "message" : "Database error detected"}; - res.json(response); - } - else { - if (!foundDriver){ - Driver.create({"idDriver" : req.body.id, "status" : "available"}, function(error, addDriver){ - if(!error && addDriver){ - var response = {"status" : 200, "message" : "Driver added to available driver list"}; - res.json(response); - } - }); - } else { - foundDriver["status"] = "available"; - foundDriver.save(); - var response = {"status" : 200, "message" : "Driver status has changed to available"}; + + // driver want to find order + app.post('/findorder', function(req, res){ + Driver.findOne({"idDriver" : req.body.id}, function(err, foundDriver){ + if (err){ + var response = {"status" : 503, "message" : "Database error detected"}; res.json(response); } - } - }); - }); - - // user select certain driver - app.post('/selectdriver', function(req, res){ - Driver.findOne({"idDriver" : Number (req.body.id), "status" : "available"}, function(err, foundDriver){ - if (!err && foundDriver){ - foundDriver["status"] = "acceptorder"; - foundDriver.save(); - var response = {"status" : 200, "message" : "Driver has accepted an order"}; - res.json(response); - } - else { - var response = {"status" : 503, "message" : "Database error detected"}; - res.json(response); - } - }); - }); - - // user finishes their order - app.post('/finishorder', function(req, res){ - Driver.findOne({"idDriver" : Number (req.body.id), "status" : "acceptorder"}, function(err, foundDriver){ - if (!err && foundDriver){ - foundDriver["status"] = "available"; - foundDriver.save(); - var response = {"status" : 200, "message" : "Driver has finished the order"}; - res.json(response); - } - else { - var response = {"status" : 503, "message" : "Database error detected"}; - res.json(response); - } + else { + if (!foundDriver){ + Driver.create({"idDriver" : req.body.id, "status" : "available", "pref": req.body.pref}, function(error, addDriver){ + if(!error && addDriver){ + var response = {"status" : 200, "message" : "Driver added to available driver list"}; + res.json(response); + } + }); + } else { + foundDriver["status"] = "available"; + foundDriver.save(); + var response = {"status" : 200, "message" : "Driver status has changed to available"}; + res.json(response); + } + } + }); }); - }); - - // FOR HANDLING FCM TOKEN USER - // add user fcm token - app.post('/addfcmtoken', function(req, res){ - FcmToken.findOne({"id" : Number (req.body.id)}, function(err, foundUser){ - if (err){ - var response = {"status" : 503, "message" : "Database error detected"}; - res.json(response); - } - else { - if (!foundUser){ - FcmToken.create({"id" : Number (req.body.id), "token" : req.body.token}, function(error, addUser){ - if(!error && addUser){ - var response = {"status" : 200, "message" : "User token has been added to token list"}; - res.json(response); + + // user select certain driver + app.post('/selectdriver', function(req, res){ + Driver.findOne({"idDriver" : req.body.id, "status" : "available"}, function(err, foundDriver){ + if (!err && foundDriver){ + FcmToken.findOne({"id" : req.body.id}, function(err1, tokenDriver){ + if (!err1 && tokenDriver) { + foundDriver["status"] = "acceptorder"; + foundDriver.save(); + var response = {"status" : 200, "message" : "Driver has accepted an order"}; + sendMessages(tokenDriver.token, "order", "you get an order"); + res.json(response); + }else{ + var response = {"status" : 503, "message" : "Database error detected"}; + res.json(response); } }); - } else { - foundUser["token"] = req.body.token; - foundUser.save(); - var response = {"status" : 200, "message" : "User token has been updated"}; - res.json(response); } - } - }); - }); - - // delete user fcm token - app.post('/deletefcmtoken', function(req, res){ - FcmToken.findOne({"id" : Number (req.body.id)}, function(err, foundUser){ - if (err){ - var response = {"status" : 503, "message" : "Database error detected"}; - res.json(response); - } - else { - foundUser.remove(); - var response = {"status" : 200, "message" : "User token has been deleted"}; - res.json(response); - } - }); - }); - - app.get('/listfcmtoken',function(req, res){ - FcmToken.find({},function(err, listUser){ - if (err){ - var response = {"status" : 503, "message" : "Database error detected"}; - res.json(response); - } - else { - var response = {"status" : 200, "message" : "User token has been deleted"}; - res.json(listUser); - } + else { + var response = {"status" : 503, "message" : "Database error detected"}; + res.json(response); + } + }); }); - }) - - // CHAT SERVICE - // Get chat history - app.get('/chathistory', function(req, res){ - var idUser = Number (req.query.idUser); - var idDriver = Number (req.query.idDriver); - Chat.findOne({"idUser" : idUser, "idDriver" : idDriver}, function(err, chat){ - if(err){ - res.json({"error" : "yes"}); - } else { - res.json(chat.history); - } + + // user finishes their order + app.post('/finishorder', function(req, res){ + Driver.findOne({"idDriver" : req.body.id, "status" : "acceptorder"}, function(err, foundDriver){ + if (!err && foundDriver){ + foundDriver.remove(); + var response = {"status" : 200, "message" : "Driver has finished the order"}; + res.json(response); + } + else { + var response = {"status" : 503, "message" : "Database error detected"}; + res.json(response); + } + }); }); - }); - - // 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"}; + + // FOR HANDLING FCM TOKEN USER + // add user fcm token + app.post('/addfcmtoken', function(req, res){ + FcmToken.findOne({"id" : req.body.id}, function(err, foundUser){ + if (err){ + var response = {"status" : 503, "message" : "Database error detected"}; + res.json(response); + } + else { + if (!foundUser){ + FcmToken.create({"id" : req.body.id, "token" : req.body.token}, function(error, addUser){ + if(!error && addUser){ + var response = {"status" : 200, "message" : "User token has been added to token list"}; + res.json(response); + } + }); + } else { + foundUser["token"] = req.body.token; + foundUser.save(); + var response = {"status" : 200, "message" : "User token has been updated"}; 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(); - console.log(receiverToken); - sendMessages(receiverToken.token, message); - res.json({'status' : 200, 'message' : 'chat history created and message sent.'}); - } - }); + } + }); + }); + + // delete user fcm token + app.post('/deletefcmtoken', function(req, res){ + FcmToken.findOne({"id" : req.body.id}, function(err, foundUser){ + if (err){ + var response = {"status" : 503, "message" : "Database error detected"}; + res.json(response); + } + else { + foundUser.remove(); + var response = {"status" : 200, "message" : "User token has been deleted"}; + res.json(response); + } + }); + }); + + app.get('/listfcmtoken',function(req, res){ + FcmToken.find({},function(err, listUser){ + if (err){ + var response = {"status" : 503, "message" : "Database error detected"}; + res.json(response); + } + else { + var response = {"status" : 200, "message" : "User token has been deleted"}; + res.json(listUser); + } + }); + }) + + // 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 { - chat.history.push({'from' : senderId.id, 'to' : receiverId, 'message' : message}); - chat.save(); - console.log(receiverToken); - sendMessages(receiverToken.token, message); - res.json({'status' : 200, 'message' : 'message sent.'}); + 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(); + console.log(receiverToken); + sendMessages(receiverToken.token, "chat", message); + res.json({'status' : 200, 'message' : 'chat history created and message sent.'}); + } + }); + } + else { + chat.history.push({'from' : senderId.id, 'to' : receiverId, 'message' : message}); + chat.save(); + console.log(receiverToken); + sendMessages(receiverToken.token, "chat", message); + 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(); - sendMessages(receiverToken.token, message); - res.json({'status' : 200, 'message' : 'chat history created and 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 { - chat.history.push({'from' : senderId.id, 'to' : receiverId, 'message' : message}); - chat.save(); - sendMessages(receiverToken.token, message); - res.json({'status' : 200, 'message' : 'message sent.'}); + 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(); + sendMessages(receiverToken.token, "chat", message); + res.json({'status' : 200, 'message' : 'chat history created and message sent.'}); + } + }); + } + else { + chat.history.push({'from' : senderId.id, 'to' : receiverId, 'message' : message}); + chat.save(); + sendMessages(receiverToken.token, "chat", message); + res.json({'status' : 200, 'message' : 'message sent.'}); + } } - } - }); - } - }); - } + }); + } + }); + } + }); }); - }); - - // ====================== FRONTEND ROUTES ============================ - - // route to handle all angular requests - app.get('*', function(req, res) { - res.send('./public/index.html'); - }); -}; \ No newline at end of file + // ====================== FRONTEND ROUTES ============================ + + // route to handle all angular requests + app.get('*', function(req, res) { + res.send('./public/index.html'); + }); + + }; \ No newline at end of file -- GitLab