Sharkey/src/server/api/common/get-friends.ts
syuilo 6909add1ec
Drop stalk feature
Resolve #3935
Closes #2226
Closes #1946
2019-01-20 12:25:00 +09:00

50 lines
1.1 KiB
TypeScript

import * as mongodb from 'mongodb';
import Following from '../../../models/following';
export const getFriendIds = async (me: mongodb.ObjectID, includeMe = true) => {
// Fetch relation to other users who the I follows
// SELECT followee
const followings = await Following
.find({
followerId: me
}, {
fields: {
followeeId: true
}
});
// ID list of other users who the I follows
const myfollowingIds = followings.map(following => following.followeeId);
if (includeMe) {
myfollowingIds.push(me);
}
return myfollowingIds;
};
export const getFriends = async (me: mongodb.ObjectID, includeMe = true, remoteOnly = false) => {
const q: any = remoteOnly ? {
followerId: me,
'_followee.host': { $ne: null }
} : {
followerId: me
};
// Fetch relation to other users who the I follows
const followings = await Following
.find(q);
// ID list of other users who the I follows
const myfollowings = followings.map(following => ({
id: following.followeeId
}));
if (includeMe) {
myfollowings.push({
id: me
});
}
return myfollowings;
};