Shun Miyazawa 1 год назад
Родитель
Сommit
7742c368e3

+ 3 - 1
apps/app/src/server/routes/apiv3/page/sync-latest-revision-body-to-yjs-draft.ts

@@ -7,6 +7,7 @@ import mongoose from 'mongoose';
 
 
 import type Crowi from '~/server/crowi';
 import type Crowi from '~/server/crowi';
 import type { PageModel } from '~/server/models/page';
 import type { PageModel } from '~/server/models/page';
+import { getYjsService } from '~/server/service/yjs';
 import loggerFactory from '~/utils/logger';
 import loggerFactory from '~/utils/logger';
 
 
 import { apiV3FormValidator } from '../../../middlewares/apiv3-form-validator';
 import { apiV3FormValidator } from '../../../middlewares/apiv3-form-validator';
@@ -45,7 +46,8 @@ export const syncLatestRevisionBodyToYjsDraftHandlerFactory: SyncLatestRevisionB
       }
       }
 
 
       try {
       try {
-        await crowi.pageService.syncLatestRevisionBodyToYjsDraft(pageId);
+        const yjsService = getYjsService();
+        await yjsService.deleteYjsData(pageId);
         return res.apiv3({ });
         return res.apiv3({ });
       }
       }
       catch (err) {
       catch (err) {

+ 6 - 0
apps/app/src/server/service/yjs.ts

@@ -31,6 +31,7 @@ export interface IYjsService {
   handleYDocUpdate(pageId: string, newValue: string): Promise<void>;
   handleYDocUpdate(pageId: string, newValue: string): Promise<void>;
   getCurrentYdoc(pageId: string): Ydoc | undefined;
   getCurrentYdoc(pageId: string): Ydoc | undefined;
   getPersistedYdoc(pageId: string): Promise<Y.Doc>;
   getPersistedYdoc(pageId: string): Promise<Y.Doc>;
+  deleteYjsData(pageId: string): Promise<void>;
 }
 }
 
 
 class YjsService implements IYjsService {
 class YjsService implements IYjsService {
@@ -222,6 +223,11 @@ class YjsService implements IYjsService {
     return persistedYdoc;
     return persistedYdoc;
   }
   }
 
 
+  public deleteYjsData = async(pageId: string): Promise<void> => {
+    await this.mdb.clearDocument(pageId);
+    this.ysocketio.documents.delete(`yjs/${pageId}`);
+  };
+
 }
 }
 
 
 let _instance: YjsService;
 let _instance: YjsService;