summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2019-09-09 22:28:41 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2019-09-09 22:28:41 +0900
commite7fcca0e064e04a6a403453666f0eefcdb3c2125 (patch)
tree75222d43f8ff148c752e53b9045c40a0d1f940b2 /src
parentRefactoring (diff)
downloadmisskey-e7fcca0e064e04a6a403453666f0eefcdb3c2125.tar.gz
misskey-e7fcca0e064e04a6a403453666f0eefcdb3c2125.tar.bz2
misskey-e7fcca0e064e04a6a403453666f0eefcdb3c2125.zip
Fix #5403
Diffstat (limited to 'src')
-rw-r--r--src/models/repositories/user.ts10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/models/repositories/user.ts b/src/models/repositories/user.ts
index a5fad96478..5c8cbb3d17 100644
--- a/src/models/repositories/user.ts
+++ b/src/models/repositories/user.ts
@@ -1,5 +1,5 @@
import $ from 'cafy';
-import { EntityRepository, Repository, In } from 'typeorm';
+import { EntityRepository, Repository, In, Not } from 'typeorm';
import { User, ILocalUser, IRemoteUser } from '../entities/user';
import { Emojis, Notes, NoteUnreads, FollowRequests, Notifications, MessagingMessages, UserNotePinings, Followings, Blockings, Mutings, UserProfiles, UserSecurityKeys, UserGroupJoinings, Pages } from '..';
import { ensure } from '../../prelude/ensure';
@@ -56,6 +56,10 @@ export class UserRepository extends Repository<User> {
}
public async getHasUnreadMessagingMessage(userId: User['id']): Promise<boolean> {
+ const mute = await Mutings.find({
+ muterId: userId
+ });
+
const joinings = await UserGroupJoinings.find({ userId: userId });
const groupQs = Promise.all(joinings.map(j => MessagingMessages.createQueryBuilder('message')
@@ -66,11 +70,11 @@ export class UserRepository extends Repository<User> {
.getOne().then(x => x != null)));
const [withUser, withGroups] = await Promise.all([
- // TODO: ミュートを考慮
MessagingMessages.count({
where: {
recipientId: userId,
- isRead: false
+ isRead: false,
+ ...(mute.length > 0 ? { userId: Not(In(mute.map(x => x.muteeId))) } : {}),
},
take: 1
}).then(count => count > 0),