29 lines
1.2 KiB
JavaScript
29 lines
1.2 KiB
JavaScript
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");
|
|
}));
|
|
}));
|
|
}
|
|
}
|