/** * Returns mutual users of group members and user * @param {Number} user UserID * @param {Number} group GroupID */ const mutualGroupMembers = async (user, group) => { let myFollowings = await db.query( 'SELECT follow_system.follow_to AS user, follow_system.follow_to_username AS username FROM follow_system WHERE follow_system.follow_by=?', [user] ), grpMembers = await db.query( 'SELECT group_members.member AS user, users.username AS username FROM group_members, users WHERE group_id = ? AND group_members.member = users.id ORDER BY group_members.joined_group DESC', [group] ), mutuals = intersectionBy(myFollowings, grpMembers, 'user') return mutuals }
/** * Returns mutual users * Returns mutual users of session & user * @param {Number} session Session ID * @param {Number} user User ID */ const mutualUsers = async (session, user) => { let myFollowings = await db.query( 'SELECT follow_system.follow_id, follow_system.follow_to AS user, follow_system.follow_to_username AS username, users.firstname, users.surname FROM follow_system, users WHERE follow_system.follow_by=? AND follow_system.follow_to = users.id', [session] ), userFollowers = await db.query( 'SELECT follow_system.follow_id, follow_system.follow_by AS user, follow_system.follow_by_username AS username, users.firstname, users.surname FROM follow_system, users WHERE follow_system.follow_to=? AND follow_system.follow_by = users.id', [user] ), mutuals = intersectionBy(myFollowings, userFollowers, 'user') return mutuals }