import { Brackets } from "typeorm"; export function generateRepliesQuery(q, withReplies, me) { if (me == null) { q.andWhere(new Brackets((qb)=>{ qb.where("note.replyId IS NULL") // 返信ではない .orWhere(new Brackets((qb)=>{ qb.where(// 返信だけど投稿者自身への返信 "note.replyId IS NOT NULL").andWhere("note.replyUserId = note.userId"); })); })); } else if (!withReplies) { q.andWhere(new Brackets((qb)=>{ qb.where("note.replyId IS NULL") // 返信ではない .orWhere("note.replyUserId = :meId", { meId: me.id }) // 返信だけど自分のノートへの返信 .orWhere(new Brackets((qb)=>{ qb.where("note.replyId IS NOT NULL") // 返信だけど自分の行った返信 .andWhere("note.userId = :meId", { meId: me.id }); })).orWhere(new Brackets((qb)=>{ qb.where("note.replyId IS NOT NULL") // 返信だけど投稿者自身への返信 .andWhere("note.replyUserId = note.userId"); })); })); } }