feat: thread mute (#7930)
* feat: thread mute * chore: fix comment * fix test * fix * refactor
This commit is contained in:
17
src/server/api/common/generate-muted-note-thread-query.ts
Normal file
17
src/server/api/common/generate-muted-note-thread-query.ts
Normal file
@@ -0,0 +1,17 @@
|
||||
import { User } from '@/models/entities/user';
|
||||
import { NoteThreadMutings } from '@/models/index';
|
||||
import { Brackets, SelectQueryBuilder } from 'typeorm';
|
||||
|
||||
export function generateMutedNoteThreadQuery(q: SelectQueryBuilder<any>, me: { id: User['id'] }) {
|
||||
const mutedQuery = NoteThreadMutings.createQueryBuilder('threadMuted')
|
||||
.select('threadMuted.threadId')
|
||||
.where('threadMuted.userId = :userId', { userId: me.id });
|
||||
|
||||
q.andWhere(`note.id NOT IN (${ mutedQuery.getQuery() })`);
|
||||
q.andWhere(new Brackets(qb => { qb
|
||||
.where(`note.threadId IS NULL`)
|
||||
.orWhere(`note.threadId NOT IN (${ mutedQuery.getQuery() })`);
|
||||
}));
|
||||
|
||||
q.setParameters(mutedQuery.getParameters());
|
||||
}
|
Reference in New Issue
Block a user