vendredi 20 octobre 2017

Try to submit different gameid for same userid

I take in a userId, gameId and Score and need to insert if that user doesn't have a score for that leaderboard or update if it does have a score and the new score is larger.

I've looked into insert same userId as long as they are in different multiple gameId but I can't insert different gameId for the same userId.

My question is, what is the SQL statement needed to accomplish the above in Node.JS.

I'm in new to working on Node.js. Please anyone can help this!!

connection.query("SELECT leaderBoard.userId,leaderBoard.deviceId,leaderBoard.gameId,leaderBoard.Score FROM leaderBoard LEFT JOIN user_data ON user_data.userId=leaderBoard.userId WHERE user_data.deviceUniqueIdentifier=\"" + req.body.deviceUniqueIdentifier + "\"", function(error, results, fields) {
    if (results.length > 0) {
        if (req.body.Score > results[0].Score && (userId === results[0].userId && gameId === results[0].gameId)) {
            connection.query("UPDATE `leaderBoard` SET `Score`=\"" + req.body.Score + "\" WHERE `userId`=\"" + results[0].userId + "\" ", function(error, results, fields) {
                if (error) console.log(error);
                res.json(messages.scoreDataUpdated);
            });
        } else {
            res.json(messages.LowscorenotUpdated);
        }
    } else {
        connection.query("SELECT `userId`,`deviceUniqueIdentifier`,`deviceId` FROM `user_data` WHERE `deviceUniqueIdentifier`=\"" + req.body.deviceUniqueIdentifier + "\"", function(error, results, fields) {
            if (error) console.log(error);
            // console.log(results);
            if (results.length > 0) {
                connection.query("INSERT INTO `leaderBoard`(`userId`,`deviceId`,`gameId`,`Score`) VALUES (\"" + results[0].userId + "\",\"" + results[0].deviceId + "\",\"" + req.body.gameId + "\",\"" + req.body.Score + "\")", function(error, results, fields) {
                    if (error) console.log(error);
                    res.json(messages.scoreAdded);
                });
            } else {
                res.json(messages.userDoesntExist);
            }
        });
    }
}

Aucun commentaire:

Enregistrer un commentaire