Created
May 8, 2018 12:12
-
-
Save jameslittle230/4d51e489d49bfca23089b821124bc7bc to your computer and use it in GitHub Desktop.
Callback Hell
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
app.get('/loadUserData', function(req, res) { | |
var keys, chats, messages; | |
var u_id = req.query.user_id; | |
db.all(`SELECT * FROM keys WHERE user_id = ` + u_id + ` OR expired_at IS NULL`, function(err, data) { | |
if(err || !data) return res.status(404).send(err || "No data found for ID"); | |
keys = data; | |
db.all(`SELECT * FROM messages WHERE recipient_id = ` + u_id, function(err, data) { | |
if(err || !data) return res.status(404).send(err || "No data found for ID"); | |
messages = data; | |
db.all(`SELECT * FROM chats WHERE chat_id IN (SELECT chat_id FROM user_chat WHERE user_id IS ` + u_id + `)`, function(err, data) { | |
if(err || !data) return res.status(404).send(err || "No data found for ID"); | |
chats = data; | |
var chatsProcessed = 0; | |
db.serialize(function() { | |
for (let chat of chats) { | |
db.all(`SELECT user_id, first_name, last_name FROM users WHERE user_id IN | |
(SELECT user_id FROM user_chat WHERE chat_id IS ` + chat.chat_id + `)`, | |
function(err, data) { | |
if(err) return res.status(404).send(err); | |
chat.members = data; | |
chatsProcessed++; | |
if(chatsProcessed == chats.length) { | |
return res.send({ | |
"keys": keys, | |
"messages": messages, | |
"chats": chats | |
}); | |
} | |
}); | |
}; | |
}); | |
}); | |
}); | |
}); | |
}); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment