summaryrefslogtreecommitdiff
path: root/src/server/api/endpoints/users/recommendation.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/api/endpoints/users/recommendation.ts')
-rw-r--r--src/server/api/endpoints/users/recommendation.ts18
1 files changed, 12 insertions, 6 deletions
diff --git a/src/server/api/endpoints/users/recommendation.ts b/src/server/api/endpoints/users/recommendation.ts
index e367e65a6c..620ae17ca2 100644
--- a/src/server/api/endpoints/users/recommendation.ts
+++ b/src/server/api/endpoints/users/recommendation.ts
@@ -4,7 +4,8 @@
const ms = require('ms');
import $ from 'cafy';
import User, { pack } from '../../../../models/user';
-import getFriends from '../../common/get-friends';
+import { getFriendIds } from '../../common/get-friends';
+import Mute from '../../../../models/mute';
/**
* Get recommended users
@@ -15,23 +16,28 @@ import getFriends from '../../common/get-friends';
*/
module.exports = (params, me) => new Promise(async (res, rej) => {
// Get 'limit' parameter
- const [limit = 10, limitErr] = $(params.limit).optional.number().range(1, 100).$;
+ const [limit = 10, limitErr] = $.num.optional().range(1, 100).get(params.limit);
if (limitErr) return rej('invalid limit param');
// Get 'offset' parameter
- const [offset = 0, offsetErr] = $(params.offset).optional.number().min(0).$;
+ const [offset = 0, offsetErr] = $.num.optional().min(0).get(params.offset);
if (offsetErr) return rej('invalid offset param');
// ID list of the user itself and other users who the user follows
- const followingIds = await getFriends(me._id);
+ const followingIds = await getFriendIds(me._id);
+
+ // ミュートしているユーザーを取得
+ const mutedUserIds = (await Mute.find({
+ muterId: me._id
+ })).map(m => m.muteeId);
const users = await User
.find({
_id: {
- $nin: followingIds
+ $nin: followingIds.concat(mutedUserIds)
},
$or: [{
- 'lastUsedAt': {
+ lastUsedAt: {
$gte: new Date(Date.now() - ms('7days'))
}
}, {