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

23 lines
875 B
JavaScript

import { db } from "../../db/postgre.js";
import { NoteFavorite } from "../entities/note-favorite.js";
import { Notes } from "../index.js";
export const NoteFavoriteRepository = db.getRepository(NoteFavorite).extend({
async pack (src, me) {
const favorite = typeof src === "object" ? src : await this.findOneByOrFail({
id: src
});
return {
id: favorite.id,
createdAt: favorite.createdAt.toISOString(),
noteId: favorite.noteId,
// may throw error
note: await Notes.pack(favorite.note || favorite.noteId, me)
};
},
packMany (favorites, me) {
return Promise.allSettled(favorites.map((x)=>this.pack(x, me))).then((promises)=>promises.flatMap((result)=>result.status === "fulfilled" ? [
result.value
] : []));
}
});