import { ChannelFollowings } from "../../../models/index.js"; import { Brackets } from "typeorm"; export function generateChannelQuery(q, me) { if (me == null) { q.andWhere("note.channelId IS NULL"); } else { q.leftJoinAndSelect("note.channel", "channel"); const channelFollowingQuery = ChannelFollowings.createQueryBuilder("channelFollowing").select("channelFollowing.followeeId").where("channelFollowing.followerId = :followerId", { followerId: me.id }); q.andWhere(new Brackets((qb)=>{ qb// チャンネルのノートではない .where("note.channelId IS NULL")// または自分がフォローしているチャンネルのノート .orWhere(`note.channelId IN (${channelFollowingQuery.getQuery()})`); })); q.setParameters(channelFollowingQuery.getParameters()); } }