Skip to content
Snippets Groups Projects
routes.js 3.18 KiB
Newer Older
module.exports = function(app) {
        var Driver         = require('./models/driver');
        // server routes ===========================================================

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


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