From 4e69f91420422562ef3bcd64cddc90c0711e1427 Mon Sep 17 00:00:00 2001 From: Eddy Oyieko Date: Tue, 17 Sep 2024 14:08:40 +0300 Subject: [PATCH] initial commit --- .../src/features/page/services/page-service.ts | 4 ++++ apps/server/src/core/page/page.controller.ts | 2 +- apps/server/src/core/page/services/page.service.ts | 4 ++++ apps/server/src/database/repos/page/page.repo.ts | 14 +++++++++++++- 4 files changed, 22 insertions(+), 2 deletions(-) diff --git a/apps/client/src/features/page/services/page-service.ts b/apps/client/src/features/page/services/page-service.ts index e2f50321..11e2326c 100644 --- a/apps/client/src/features/page/services/page-service.ts +++ b/apps/client/src/features/page/services/page-service.ts @@ -30,6 +30,10 @@ export async function deletePage(pageId: string): Promise { await api.post("/pages/delete", { pageId }); } +export async function restorePage(pageId: string): Promise { + await api.post("/pages/restore", { pageId }); +} + export async function movePage(data: IMovePage): Promise { await api.post("/pages/move", data); } diff --git a/apps/server/src/core/page/page.controller.ts b/apps/server/src/core/page/page.controller.ts index 694bec60..e536d75f 100644 --- a/apps/server/src/core/page/page.controller.ts +++ b/apps/server/src/core/page/page.controller.ts @@ -115,7 +115,7 @@ export class PageController { @HttpCode(HttpStatus.OK) @Post('restore') async restore(@Body() pageIdDto: PageIdDto) { - // await this.pageService.restore(deletePageDto.id); + await this.pageService.restore(pageIdDto.pageId); } @HttpCode(HttpStatus.OK) diff --git a/apps/server/src/core/page/services/page.service.ts b/apps/server/src/core/page/services/page.service.ts index 97f9377f..98d58eac 100644 --- a/apps/server/src/core/page/services/page.service.ts +++ b/apps/server/src/core/page/services/page.service.ts @@ -284,6 +284,10 @@ export class PageService { async forceDelete(pageId: string): Promise { await this.pageRepo.deletePage(pageId); } + + async restore(pageId: string): Promise { + await this.pageRepo.restorePage(pageId); + } } /* diff --git a/apps/server/src/database/repos/page/page.repo.ts b/apps/server/src/database/repos/page/page.repo.ts index d14a91d7..ac0d49c5 100644 --- a/apps/server/src/database/repos/page/page.repo.ts +++ b/apps/server/src/database/repos/page/page.repo.ts @@ -107,7 +107,19 @@ export class PageRepo { } async deletePage(pageId: string): Promise { - let query = this.db.deleteFrom('pages'); + let query = this.db.updateTable('pages').set({ deletedAt: new Date() }); + + if (isValidUUID(pageId)) { + query = query.where('id', '=', pageId); + } else { + query = query.where('slugId', '=', pageId); + } + + await query.execute(); + } + + async restorePage(pageId: string): Promise { + let query = this.db.updateTable('pages').set({ deletedAt: null }); if (isValidUUID(pageId)) { query = query.where('id', '=', pageId);