JSFiddle - React, Tailwind, and code Playground
JavaScript
function getUserDashboardData(db, userId) {
// blocking calls
var user = getUserFromDatabase(db, userId);
var friends = getUserFriends(db, user);
var discussions = getUserDiscussions(db, user);
var friendRecommendations = getUserFriendRecommendations(db,
user,
friends);
var interestingDiscussions = getUserInterestingDiscussions(db,
friends);
return {
user: user,
friends: friends,
discussions: discussions,
friendRecommendations: friendRecommendations,
interestingDiscussions: interestingDiscussions
};
}
function getUserFromDatabase(db, userId) {
return db.read('users', 'id = ?', userId);
function getUserFriends(db, user) {
return db.read('friends', 'user_id = ?', user.id);
}
function getUserDiscussions(db, user) {
return db.read('discussions', 'user_id = ?', user.id);
}
function getUserFriendRecommendations(db, user, friends) {
var friendIds = _.pluck(friends, 'id');
return db.read('friend_recommendations', 'user_id = ? and friend_id in ?',
user.id,
friendIds);
}
function getUserInterestingDiscussions(db, discussions) {
var discussionIds = _.pluck(discussions, 'id');
return db.read('interesting_discussions', 'id in ?', discussionIds);
}