Skip to content
Snippets Groups Projects
routes.js 5.11 KiB
Newer Older
adyanf's avatar
adyanf committed

        // Load Models
        var Driver         = require('./models/driver');
adyanf's avatar
adyanf committed
        var FcmToken         = require('./models/fcmtoken');
        var Chat           = require('./models/chat');        
        
        // ====================== SERVER ROUTES ============================
adyanf's avatar
adyanf committed
        // FOR HANDLING DRIVER STATUS
        // see available driver
        app.get('/availabledriver', function(req, res){
            Driver.find({"status" : "available"}, function(err, foundDriver){
                res.json(foundDriver);
            });
        });

        // 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);
                }
                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"};
                        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){
                    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" : 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);                     
                }
            });
        });

adyanf's avatar
adyanf committed
        // 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, "status" : "available"}, 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);
                    }
                }
            });
        });

        // 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);
                }
            });
        });

        // Chat Service
        


        // ====================== FRONTEND ROUTES ============================

        // route to handle all angular requests
        app.get('*', function(req, res) {
            res.send('./public/index.html');
        });
    
};