Update the repository to use exception for the delete action.

This commit is contained in:
2025-01-26 14:28:56 +02:00
parent 769edabbd3
commit cae4ce50c5
4 changed files with 19 additions and 15 deletions
@@ -1,6 +1,7 @@
from typing import Optional
from tui_rsync.core.ports.orm import DatabaseManagerPort
from tui_rsync.core.shared_kernel.ports.Exceptions import CommandException
from tui_rsync.infrastructure.orm.dto.dtos import BackupPlanDTO
from .backup_plan_repository_port import BackupPlanRepositoryPort
@@ -47,4 +48,8 @@ class BackupPlanRepository(BackupPlanRepositoryPort):
def delete(self, uuid: UUID) -> bool:
deleted = BackupPlanModel.delete().where(BackupPlanModel.id == uuid.id).execute()
deleted = DestinationModel.delete().where(DestinationModel.source == uuid.id).execute() | deleted
return bool(deleted)
if deleted == 0:
raise CommandException("Failed to delete the backup plan, because it doesn't exist.")
return True
@@ -23,13 +23,16 @@ import typer
from tui_rsync.core.components.backup_plan.application.commands import RemoveAllBackupBackupPlansCommand
from tui_rsync.core.components.backup_plan.application.services.backup_plan_service import BackupPlanService
from tui_rsync.core.shared_kernel.components.common import UUID
from tui_rsync.core.shared_kernel.ports.Exceptions import CommandException
from tui_rsync.infrastructure.configuration import CurrentConfiguration
from tui_rsync.user_interface.cli.shared_kernel.components.errors.applications.exceptions import catch_exception
console = Console()
remove_backup_plan = typer.Typer()
@remove_backup_plan.command()
@catch_exception(CommandException, 1)
def one(
id: str = typer.Option(
None, "--id", "-i",
@@ -43,15 +46,7 @@ def one(
service: BackupPlanService = CurrentConfiguration.get(BackupPlanService)
if id is None:
console.print("[red b][ERROR][/] Backup plan does not exists!!!")
return
plan = service.delete(UUID(id))
if plan is None:
console.print("[red b][ERROR][/] Backup plan does not exists!!!")
return
service.delete(UUID(id))
console.print(f"Removed the backup plan with {id}.")