Commit b8d44a03 authored by Dennis Willers's avatar Dennis Willers
Browse files

Implement getGamestatus API

parent 9200cc5f
Loading
Loading
Loading
Loading
+48 −5
Original line number Diff line number Diff line
@@ -4,27 +4,39 @@ function createRouter(db) {
    const router = express.Router();

    // the routes are defined here

    //Generate new Session
    router.post('/addSession', (req, res) => {
        var spielname = req.body.spielname;
        const spielname = req.body.spielname;
        if (spielname.match(/^[0-9a-zA-Z]+$/) != null) {
            db.query(
                'INSERT INTO Session (SessionName) VALUES (\"'+spielname+'\");',
                (error) => {
                error => {
                    if (error) {
                        console.error(error);
                        res.status(500).json({status: 'false'});
                    } else {
                        res.status(200).json({status: 'true'});
                    }
                }
            );
            //Init new Gamestatus
            db.query(
                'INSERT INTO Gamestatus (SessionID, Red, Blue, RedTurn, ActiveExplainer, ActiveWatchdog) VALUES ((SELECT SessionID FROM Session WHERE SessionName = \"'+spielname+'\"), 0, 0, 1, 0, 0);',
                error => {
                    if (error) {
                        console.error(error);
                        res.status(500).json({status: 'false'});
                    } else {
                        res.status(200).json({status: 'true'});
                    }
                });
        } else {
            res.status(500).json({status: 'error'});
        }
    });

    //Check if Session exist
    router.post('/isSession', (req, res) => {
        var spielname = req.body.spielname;
        const spielname = req.body.spielname;
        if (spielname.match(/^[0-9a-zA-Z]+$/) != null) {
            db.query(
                'SELECT SessionName FROM Session WHERE SessionName = \''+spielname+'\';',
@@ -46,6 +58,7 @@ function createRouter(db) {
        }
    });

    //Return all Sessions (Not neccesary)
    router.get('/Session', function (req, res) {
        db.query(
            'SELECT * FROM Session',
@@ -60,6 +73,36 @@ function createRouter(db) {
        );
    });

    //Return GameStatus
    router.post('/getGamestatus', (req, res) => {
        const spielname = req.body.spielname;
        if (spielname.match(/^[0-9a-zA-Z]+$/) != null) {
            db.query(
                'SELECT SessionID, Red, Blue, RedTurn, ActiveExplainer, ActiveWatchdog FROM Gamestatus WHERE SessionID = (SELECT SessionID FROM Session WHERE SessionName = \"'+spielname+'\")',
                (error, results) => {
                    if (error) {
                        console.log(error);
                        res.status(500).json({status: 'false'});
                    } else {
                        res.status(200).json(
                            {
                                status: 'true',
                                sessionID: results[0].SessionID,
                                red: results[0].Red,
                                blue: results[0].Blue,
                                redTurn: results[0].RedTurn,
                                activeExplainer: results[0].ActiveExplainer,
                                activeWatchdog: results[0].ActiveWatchdog
                            }
                        );
                    }
                }
            );
        } else {
            res.status(500).json({status: 'error'});
        }
    });

    return router;
}