summaryrefslogtreecommitdiff
path: root/src/server/api/common/generate-visibility-query.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/api/common/generate-visibility-query.ts')
-rw-r--r--src/server/api/common/generate-visibility-query.ts40
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());
- }
-}