From 730e925b6a7777cb6250016c00e455263d64d4a2 Mon Sep 17 00:00:00 2001 From: Philipinho <16838612+Philipinho@users.noreply.github.com> Date: Mon, 30 Oct 2023 14:46:28 +0000 Subject: [PATCH] fetch page without ydoc --- server/src/core/page/page.controller.ts | 6 ++++- .../core/page/repositories/page.repository.ts | 26 +++++++++++++++++++ server/src/core/page/services/page.service.ts | 15 +++++------ 3 files changed, 38 insertions(+), 9 deletions(-) diff --git a/server/src/core/page/page.controller.ts b/server/src/core/page/page.controller.ts index d9269dd1..629536fa 100644 --- a/server/src/core/page/page.controller.ts +++ b/server/src/core/page/page.controller.ts @@ -27,9 +27,10 @@ export class PageController { private readonly workspaceService: WorkspaceService, ) {} + @HttpCode(HttpStatus.OK) @Post('/details') async getPage(@Body() input: PageDetailsDto) { - return this.pageService.findById(input.id); + return this.pageService.findWithoutYDoc(input.id); } @HttpCode(HttpStatus.CREATED) @@ -47,16 +48,19 @@ export class PageController { return this.pageService.create(userId, workspaceId, createPageDto); } + @HttpCode(HttpStatus.OK) @Post('update') async update(@Body() updatePageDto: UpdatePageDto) { return this.pageService.update(updatePageDto.id, updatePageDto); } + @HttpCode(HttpStatus.OK) @Post('delete') async delete(@Body() deletePageDto: DeletePageDto) { await this.pageService.delete(deletePageDto.id); } + @HttpCode(HttpStatus.OK) @Post('restore') async restore(@Body() deletePageDto: DeletePageDto) { await this.pageService.restore(deletePageDto.id); diff --git a/server/src/core/page/repositories/page.repository.ts b/server/src/core/page/repositories/page.repository.ts index bb021022..fa99cf53 100644 --- a/server/src/core/page/repositories/page.repository.ts +++ b/server/src/core/page/repositories/page.repository.ts @@ -11,4 +11,30 @@ export class PageRepository extends Repository { async findById(pageId: string) { return this.findOneBy({ id: pageId }); } + + async findWithoutYDoc(pageId: string) { + return this.dataSource + .createQueryBuilder(Page, 'page') + .where('page.id = :id', { id: pageId }) + .select([ + 'page.id', + 'page.title', + 'page.slug', + 'page.icon', + 'page.coverPhoto', + 'page.editor', + 'page.shareId', + 'page.parentPageId', + 'page.creatorId', + 'page.workspaceId', + 'page.isLocked', + 'page.status', + 'page.publishedAt', + 'page.createdAt', + 'page.updatedAt', + 'page.deletedAt', + 'page.children', + ]) + .getOne(); + } } diff --git a/server/src/core/page/services/page.service.ts b/server/src/core/page/services/page.service.ts index 1d5d7ded..9deb01b2 100644 --- a/server/src/core/page/services/page.service.ts +++ b/server/src/core/page/services/page.service.ts @@ -28,6 +28,10 @@ export class PageService { return this.pageRepository.findById(pageId); } + async findWithoutYDoc(pageId: string) { + return this.pageRepository.findWithoutYDoc(pageId); + } + async create( userId: string, workspaceId: string, @@ -59,17 +63,12 @@ export class PageService { } async update(pageId: string, updatePageDto: UpdatePageDto): Promise { - const existingPage = await this.pageRepository.findOne({ - where: { id: pageId }, - }); - - if (!existingPage) { + const result = await this.pageRepository.update(pageId, updatePageDto); + if (result.affected === 0) { throw new BadRequestException(`Page not found`); } - Object.assign(existingPage, updatePageDto); - - return await this.pageRepository.save(existingPage); + return await this.pageRepository.findWithoutYDoc(pageId); } async updateState(pageId: string, content: any, ydoc: any): Promise {