Files
FrozenFriendsYume/packages/backend/built/models/repositories/messaging-message.js
T
2026-07-26 18:25:37 +09:00

30 lines
1.3 KiB
JavaScript

import { db } from "../../db/postgre.js";
import { MessagingMessage } from "../entities/messaging-message.js";
import { Users, DriveFiles, UserGroups } from "../index.js";
export const MessagingMessageRepository = db.getRepository(MessagingMessage).extend({
async pack (src, me, options) {
const opts = options || {
populateRecipient: true,
populateGroup: true
};
const message = typeof src === "object" ? src : await this.findOneByOrFail({
id: src
});
return {
id: message.id,
createdAt: message.createdAt.toISOString(),
text: message.text,
userId: message.userId,
user: await Users.pack(message.user || message.userId, me),
recipientId: message.recipientId,
recipient: message.recipientId && opts.populateRecipient ? await Users.pack(message.recipient || message.recipientId, me) : undefined,
groupId: message.groupId,
group: message.groupId && opts.populateGroup ? await UserGroups.pack(message.group || message.groupId) : undefined,
fileId: message.fileId,
file: message.fileId ? await DriveFiles.pack(message.fileId) : null,
isRead: message.isRead,
reads: message.reads
};
}
});