diff options
Diffstat (limited to 'src/server/api/common/generate-visibility-query.ts')
| -rw-r--r-- | src/server/api/common/generate-visibility-query.ts | 40 |
1 files changed, 0 insertions, 40 deletions
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<any>, 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()); - } -} |