Fixed 267U.pre2

This commit is contained in:
2026-07-26 18:25:37 +09:00
parent 50bfaeafdf
commit 317d00a284
1286 changed files with 80222 additions and 1 deletions
@@ -0,0 +1,106 @@
import { db } from "../../db/postgre.js";
import { Bite } from "../entities/bite.js";
import { Bites, Notes, Users } from "../index.js";
import { awaitAll } from "../../prelude/await-all.js";
import config from "../../config/index.js";
export const BiteRespository = db.getRepository(Bite).extend({
targetType (bite) {
if (bite.targetUserId) return "user";
if (bite.targetBiteId) return "bite";
return "note";
},
async pack (src, me) {
const bite = typeof src === "object" ? src : await this.findOneByOrFail({
id: src
});
return await awaitAll({
id: bite.id,
user: Users.pack(bite.user ?? bite.userId, me, {
detail: false
}),
targetType: BiteRespository.targetType(bite),
target: this.packTarget(bite, me),
replied: bite.replied
});
},
async packTarget (bite, me) {
switch(BiteRespository.targetType(bite)){
case "user":
return await Users.pack(bite.targetUser ?? bite.targetUserId, me, {
detail: false
});
case "bite":
return await this.pack(bite.targetBite ?? bite.targetBiteId, me);
case "note":
return await Notes.pack(bite.targetNote ?? bite.targetNoteId, me, {
detail: false
});
}
},
async targetUri (bite) {
switch(BiteRespository.targetType(bite)){
case "user":
{
bite.targetUser = bite.targetUser ?? await Users.findOneOrFail({
where: {
id: bite.targetUserId
}
});
return bite.targetUser.uri ?? `${config.url}/users/${bite.targetUserId}`;
}
case "bite":
{
bite.targetBite = bite.targetBite ?? await Bites.findOneOrFail({
where: {
id: bite.targetBiteId
}
});
return bite.targetBite.uri ?? `${config.url}/bites/${bite.targetBiteId}`;
}
case "note":
{
bite.targetNote = bite.targetNote ?? await Notes.findOneOrFail({
where: {
id: bite.targetNoteId
}
});
return bite.targetNote.uri ?? `${config.url}/notes/${bite.targetBiteId}`;
}
}
},
async targetUserUri (bite) {
switch(BiteRespository.targetType(bite)){
case "user":
if (!bite.targetUser) bite.targetUser = await Users.findOneByOrFail({
id: bite.targetUserId
});
return bite.targetUser.uri ?? `${config.url}/users/${bite.targetUserId}`;
case "bite":
bite.targetBite = bite.targetBite ?? await Bites.findOneOrFail({
where: {
id: bite.targetBiteId
},
relations: [
"user"
]
});
bite.targetBite.user = bite.targetBite.user ?? await Users.findOneByOrFail({
id: bite.targetBite.userId
});
return bite.targetBite.user.uri ?? `${config.url}/users/${bite.targetBite.userId}`;
case "note":
bite.targetNote = bite.targetNote ?? await Notes.findOneOrFail({
where: {
id: bite.targetNoteId
},
relations: [
"user"
]
});
bite.targetNote.user = bite.targetNote.user ?? await Users.findOneByOrFail({
id: bite.targetNote.userId
});
return bite.targetNote.user.uri ?? `${config.url}/users/${bite.targetNote.userId}`;
}
}
});