From 0e4a111f81cceed275d9bec2695f6e401fb654d8 Mon Sep 17 00:00:00 2001 From: syuilo Date: Fri, 12 Nov 2021 02:02:25 +0900 Subject: refactoring Resolve #7779 --- src/server/api/common/generate-visibility-query.ts | 40 ---------------------- 1 file changed, 40 deletions(-) delete mode 100644 src/server/api/common/generate-visibility-query.ts (limited to 'src/server/api/common/generate-visibility-query.ts') diff --git a/src/server/api/common/generate-visibility-query.ts b/src/server/api/common/generate-visibility-query.ts deleted file mode 100644 index 813e8b6c09..0000000000 --- a/src/server/api/common/generate-visibility-query.ts +++ /dev/null @@ -1,40 +0,0 @@ -import { User } from '@/models/entities/user'; -import { Followings } from '@/models/index'; -import { Brackets, SelectQueryBuilder } from 'typeorm'; - -export function generateVisibilityQuery(q: SelectQueryBuilder, me?: { id: User['id'] } | null) { - if (me == null) { - q.andWhere(new Brackets(qb => { qb - .where(`note.visibility = 'public'`) - .orWhere(`note.visibility = 'home'`); - })); - } else { - const followingQuery = Followings.createQueryBuilder('following') - .select('following.followeeId') - .where('following.followerId = :followerId', { followerId: me.id }); - - q.andWhere(new Brackets(qb => { qb - // 公開投稿である - .where(new Brackets(qb => { qb - .where(`note.visibility = 'public'`) - .orWhere(`note.visibility = 'home'`); - })) - // または 自分自身 - .orWhere('note.userId = :userId1', { userId1: me.id }) - // または 自分宛て - .orWhere(`'{"${me.id}"}' <@ note.visibleUserIds`) - .orWhere(new Brackets(qb => { qb - // または フォロワー宛ての投稿であり、 - .where('note.visibility = \'followers\'') - .andWhere(new Brackets(qb => { qb - // 自分がフォロワーである - .where(`note.userId IN (${ followingQuery.getQuery() })`) - // または 自分の投稿へのリプライ - .orWhere('note.replyUserId = :userId3', { userId3: me.id }); - })); - })); - })); - - q.setParameters(followingQuery.getParameters()); - } -} -- cgit v1.2.3-freya