23 lines
875 B
JavaScript
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
|
|
] : []));
|
|
}
|
|
});
|