fixes for delete dataset method

This commit is contained in:
rajeevrajeshuni 2025-12-01 07:17:43 +05:30
parent 37e862c053
commit 3a85713722

View file

@ -1,4 +1,5 @@
import asyncio import asyncio
import time
from uuid import UUID from uuid import UUID
from textual.app import ComposeResult from textual.app import ComposeResult
from textual.widgets import Input, Button, Static, Label from textual.widgets import Input, Button, Static, Label
@ -99,13 +100,14 @@ class DeleteTUIScreen(BaseTUIScreen):
self.app.pop_screen() self.app.pop_screen()
def _handle_delete(self) -> None: def _handle_delete(self) -> None:
status = self.query_one(".tui-status", Static)
status.update("🔍 Starting the deletion process...")
"""Handle delete operation for dataset or user.""" """Handle delete operation for dataset or user."""
if self.is_processing: if self.is_processing:
return return
dataset_input = self.query_one("#dataset-input", Input) dataset_input = self.query_one("#dataset-input", Input)
user_input = self.query_one("#user-input", Input) user_input = self.query_one("#user-input", Input)
status = self.query_one(".tui-status", Static)
dataset_name = dataset_input.value.strip() or None dataset_name = dataset_input.value.strip() or None
user_id = user_input.value.strip() or None user_id = user_input.value.strip() or None
@ -116,39 +118,24 @@ class DeleteTUIScreen(BaseTUIScreen):
self.is_processing = True self.is_processing = True
status.update("🔍 Checking data to delete...") status.update("🔍 Checking data to delete...")
# Run async delete operation # Run async delete operation
asyncio.create_task(self._delete_async(dataset_name, user_id)) asyncio.create_task(self._delete_async(dataset_name, user_id))
async def _delete_async(self, dataset_name: str | None, user_id: str | None) -> None: async def _delete_async(self, dataset_name: str | None, user_id: str | None) -> None:
"""Async function to delete data.""" """Async function to delete data."""
status = self.query_one(".tui-status", Static) status = self.query_one(".tui-status", Static)
try: try:
# Perform deletion
if dataset_name: if dataset_name:
# Use delete_datasets_by_name for dataset deletion
if user_id is None: if user_id is None:
user = await get_default_user() user = await get_default_user()
user_id = user.id user_id = user.id
result = await delete_dataset_by_name(dataset_name, user_id) await delete_dataset_by_name(dataset_name, user_id)
if result["not_found"]:
status.update(f"⚠️ Dataset '{dataset_name}' not found")
self.is_processing = False
return
status.update(f"✓ Successfully deleted {result['deleted_count']} dataset(s)")
else: else:
# For user_id deletion, use the new delete_data_by_user method await delete_data_by_user(UUID(user_id))
result = await delete_data_by_user(UUID(user_id))
status.update(
f"✓ Successfully deleted {result['datasets_deleted']} datasets and {result['data_entries_deleted']} data entries for user '{user_id}'"
)
except Exception as e: except Exception as e:
status.update(f"✗ Error: {str(e)}") status.update(f"✗ Error: {str(e)}")
finally: finally:
status.update("✓ Successfully deleted dataset.")
self.is_processing = False self.is_processing = False
def _handle_delete_all(self) -> None: def _handle_delete_all(self) -> None: