From 1b9d316e7c2446211f4b5b6ec27dce0d9b4f0968 Mon Sep 17 00:00:00 2001 From: syuilo Date: Tue, 28 Jul 2020 09:38:41 +0900 Subject: refactor: Rename function --- src/server/api/common/generate-mute-query.ts | 40 ---------------------- src/server/api/common/generate-muted-user-query.ts | 40 ++++++++++++++++++++++ src/server/api/common/inject-featured.ts | 4 +-- 3 files changed, 42 insertions(+), 42 deletions(-) delete mode 100644 src/server/api/common/generate-mute-query.ts create mode 100644 src/server/api/common/generate-muted-user-query.ts (limited to 'src/server/api/common') diff --git a/src/server/api/common/generate-mute-query.ts b/src/server/api/common/generate-mute-query.ts deleted file mode 100644 index 4504d23512..0000000000 --- a/src/server/api/common/generate-mute-query.ts +++ /dev/null @@ -1,40 +0,0 @@ -import { User } from '../../../models/entities/user'; -import { Mutings } from '../../../models'; -import { SelectQueryBuilder, Brackets } from 'typeorm'; - -export function generateMuteQuery(q: SelectQueryBuilder, me: User, exclude?: User) { - const mutingQuery = Mutings.createQueryBuilder('muting') - .select('muting.muteeId') - .where('muting.muterId = :muterId', { muterId: me.id }); - - if (exclude) { - mutingQuery.andWhere('muting.muteeId != :excludeId', { excludeId: exclude.id }); - } - - // 投稿の作者をミュートしていない かつ - // 投稿の返信先の作者をミュートしていない かつ - // 投稿の引用元の作者をミュートしていない - q - .andWhere(`note.userId NOT IN (${ mutingQuery.getQuery() })`) - .andWhere(new Brackets(qb => { qb - .where(`note.replyUserId IS NULL`) - .orWhere(`note.replyUserId NOT IN (${ mutingQuery.getQuery() })`); - })) - .andWhere(new Brackets(qb => { qb - .where(`note.renoteUserId IS NULL`) - .orWhere(`note.renoteUserId NOT IN (${ mutingQuery.getQuery() })`); - })); - - q.setParameters(mutingQuery.getParameters()); -} - -export function generateMuteQueryForUsers(q: SelectQueryBuilder, me: User) { - const mutingQuery = Mutings.createQueryBuilder('muting') - .select('muting.muteeId') - .where('muting.muterId = :muterId', { muterId: me.id }); - - q - .andWhere(`user.id NOT IN (${ mutingQuery.getQuery() })`); - - q.setParameters(mutingQuery.getParameters()); -} diff --git a/src/server/api/common/generate-muted-user-query.ts b/src/server/api/common/generate-muted-user-query.ts new file mode 100644 index 0000000000..b346f2f0fb --- /dev/null +++ b/src/server/api/common/generate-muted-user-query.ts @@ -0,0 +1,40 @@ +import { User } from '../../../models/entities/user'; +import { Mutings } from '../../../models'; +import { SelectQueryBuilder, Brackets } from 'typeorm'; + +export function generateMutedUserQuery(q: SelectQueryBuilder, me: User, exclude?: User) { + const mutingQuery = Mutings.createQueryBuilder('muting') + .select('muting.muteeId') + .where('muting.muterId = :muterId', { muterId: me.id }); + + if (exclude) { + mutingQuery.andWhere('muting.muteeId != :excludeId', { excludeId: exclude.id }); + } + + // 投稿の作者をミュートしていない かつ + // 投稿の返信先の作者をミュートしていない かつ + // 投稿の引用元の作者をミュートしていない + q + .andWhere(`note.userId NOT IN (${ mutingQuery.getQuery() })`) + .andWhere(new Brackets(qb => { qb + .where(`note.replyUserId IS NULL`) + .orWhere(`note.replyUserId NOT IN (${ mutingQuery.getQuery() })`); + })) + .andWhere(new Brackets(qb => { qb + .where(`note.renoteUserId IS NULL`) + .orWhere(`note.renoteUserId NOT IN (${ mutingQuery.getQuery() })`); + })); + + q.setParameters(mutingQuery.getParameters()); +} + +export function generateMutedUserQueryForUsers(q: SelectQueryBuilder, me: User) { + const mutingQuery = Mutings.createQueryBuilder('muting') + .select('muting.muteeId') + .where('muting.muterId = :muterId', { muterId: me.id }); + + q + .andWhere(`user.id NOT IN (${ mutingQuery.getQuery() })`); + + q.setParameters(mutingQuery.getParameters()); +} diff --git a/src/server/api/common/inject-featured.ts b/src/server/api/common/inject-featured.ts index 92e1e3b396..098d20e72d 100644 --- a/src/server/api/common/inject-featured.ts +++ b/src/server/api/common/inject-featured.ts @@ -2,7 +2,7 @@ import rndstr from 'rndstr'; import { Note } from '../../../models/entities/note'; import { User } from '../../../models/entities/user'; import { Notes, UserProfiles, NoteReactions } from '../../../models'; -import { generateMuteQuery } from './generate-mute-query'; +import { generateMutedUserQuery } from './generate-muted-user-query'; import { ensure } from '../../../prelude/ensure'; // TODO: リアクション、Renote、返信などをしたノートは除外する @@ -29,7 +29,7 @@ export async function injectFeatured(timeline: Note[], user?: User | null) { if (user) { query.andWhere('note.userId != :userId', { userId: user.id }); - generateMuteQuery(query, user); + generateMutedUserQuery(query, user); const reactionQuery = NoteReactions.createQueryBuilder('reaction') .select('reaction.noteId') -- cgit v1.2.3-freya