2016-12-28 16:49:51 -06:00
|
|
|
import * as mongodb from 'mongodb';
|
2018-03-29 06:32:18 -05:00
|
|
|
import Following from '../../../models/following';
|
2016-12-28 16:49:51 -06:00
|
|
|
|
2018-04-18 22:43:25 -05:00
|
|
|
export const getFriendIds = async (me: mongodb.ObjectID, includeMe = true) => {
|
2016-12-28 16:49:51 -06:00
|
|
|
// Fetch relation to other users who the I follows
|
|
|
|
// SELECT followee
|
2018-04-18 22:43:25 -05:00
|
|
|
const followings = await Following
|
2016-12-28 16:49:51 -06:00
|
|
|
.find({
|
2018-04-02 07:57:36 -05:00
|
|
|
followerId: me
|
2016-12-28 16:49:51 -06:00
|
|
|
}, {
|
2017-01-17 15:10:56 -06:00
|
|
|
fields: {
|
2018-03-29 00:48:47 -05:00
|
|
|
followeeId: true
|
2017-01-17 15:10:56 -06:00
|
|
|
}
|
2017-01-16 20:11:22 -06:00
|
|
|
});
|
2016-12-28 16:49:51 -06:00
|
|
|
|
|
|
|
// ID list of other users who the I follows
|
2018-04-18 22:43:25 -05:00
|
|
|
const myfollowingIds = followings.map(following => following.followeeId);
|
2016-12-28 16:49:51 -06:00
|
|
|
|
|
|
|
if (includeMe) {
|
|
|
|
myfollowingIds.push(me);
|
|
|
|
}
|
|
|
|
|
|
|
|
return myfollowingIds;
|
|
|
|
};
|
2018-04-18 22:43:25 -05:00
|
|
|
|
|
|
|
export const getFriends = async (me: mongodb.ObjectID, includeMe = true) => {
|
|
|
|
// Fetch relation to other users who the I follows
|
|
|
|
const followings = await Following
|
|
|
|
.find({
|
|
|
|
followerId: me
|
|
|
|
});
|
|
|
|
|
|
|
|
// ID list of other users who the I follows
|
|
|
|
const myfollowings = followings.map(following => ({
|
|
|
|
id: following.followeeId,
|
|
|
|
stalk: following.stalk
|
|
|
|
}));
|
|
|
|
|
|
|
|
if (includeMe) {
|
|
|
|
myfollowings.push({
|
|
|
|
id: me,
|
|
|
|
stalk: true
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
return myfollowings;
|
|
|
|
};
|