initial commit

This commit is contained in:
Eddy Oyieko
2024-09-17 14:08:40 +03:00
parent e9e668bd39
commit 4e69f91420
4 changed files with 22 additions and 2 deletions

View File

@ -30,6 +30,10 @@ export async function deletePage(pageId: string): Promise<void> {
await api.post("/pages/delete", { pageId }); await api.post("/pages/delete", { pageId });
} }
export async function restorePage(pageId: string): Promise<void> {
await api.post("/pages/restore", { pageId });
}
export async function movePage(data: IMovePage): Promise<void> { export async function movePage(data: IMovePage): Promise<void> {
await api.post<void>("/pages/move", data); await api.post<void>("/pages/move", data);
} }

View File

@ -115,7 +115,7 @@ export class PageController {
@HttpCode(HttpStatus.OK) @HttpCode(HttpStatus.OK)
@Post('restore') @Post('restore')
async restore(@Body() pageIdDto: PageIdDto) { async restore(@Body() pageIdDto: PageIdDto) {
// await this.pageService.restore(deletePageDto.id); await this.pageService.restore(pageIdDto.pageId);
} }
@HttpCode(HttpStatus.OK) @HttpCode(HttpStatus.OK)

View File

@ -284,6 +284,10 @@ export class PageService {
async forceDelete(pageId: string): Promise<void> { async forceDelete(pageId: string): Promise<void> {
await this.pageRepo.deletePage(pageId); await this.pageRepo.deletePage(pageId);
} }
async restore(pageId: string): Promise<void> {
await this.pageRepo.restorePage(pageId);
}
} }
/* /*

View File

@ -107,7 +107,19 @@ export class PageRepo {
} }
async deletePage(pageId: string): Promise<void> { async deletePage(pageId: string): Promise<void> {
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<void> {
let query = this.db.updateTable('pages').set({ deletedAt: null });
if (isValidUUID(pageId)) { if (isValidUUID(pageId)) {
query = query.where('id', '=', pageId); query = query.where('id', '=', pageId);