Forráskód Böngészése

Add parentFolder virtual

https://youtrack.weseek.co.jp/issue/GW-7905
- Update BookmarkFolderItems interface
- Add virtual definition of parentFolder
- Populate virtual parentFolder object

-
Mudana-Grune 3 éve
szülő
commit
d0d02a16cc
1 módosított fájl, 11 hozzáadás és 1 törlés
  1. 11 1
      packages/app/src/server/models/bookmark-folder.ts

+ 11 - 1
packages/app/src/server/models/bookmark-folder.ts

@@ -16,6 +16,7 @@ const logger = loggerFactory('growi:models:bookmark-folder');
 export interface BookmarkFolderItems {
   _id: string
   name: string
+  parentFolder: this
   parent: string
   children: this[]
 }
@@ -46,6 +47,13 @@ bookmarkFolderSchema.virtual('children', {
   foreignField: 'parent',
 });
 
+bookmarkFolderSchema.virtual('parentFolder', {
+  ref: 'BookmarkFolder',
+  localField: 'parent',
+  foreignField: '_id',
+  justOne: true,
+});
+
 bookmarkFolderSchema.statics.createByParameters = async function(params: IBookmarkFolder): Promise<BookmarkFolderDocument> {
   const { name, owner, parent } = params;
   let bookmarkFolder;
@@ -75,7 +83,9 @@ bookmarkFolderSchema.statics.findFolderAndChildren = async function(
     parentId?: Types.ObjectId | string,
 ): Promise<BookmarkFolderItems[]> {
   const parentFolder = await this.findById(parentId) as unknown as BookmarkFolderDocument;
-  const bookmarks = await this.find({ owner: userId, parent: parentFolder }).populate({ path: 'children' }).exec() as unknown as BookmarkFolderItems[];
+  const populatePaths = [{ path: 'children' }, { path: 'parentFolder' }];
+  const bookmarks = await this.find({ owner: userId, parent: parentFolder })
+    .populate(populatePaths).exec() as unknown as BookmarkFolderItems[];
   return bookmarks;
 };