usawa

Signed, immutable accounting.
Log | Files | Refs | Submodules | LICENSE

commit 6189385e5425486b015cddd9440379a7c84c5e11
parent 4029b2fdf08e46d04e343975c61637fd85b1018e
Author: Carlosokumu <carlosokumu254@gmail.com>
Date:   Mon, 13 Jul 2026 11:54:06 +0300

check exceptions in one block

Diffstat:
Mdummy/usawa/gui/core/entry_service.py | 58++++++++++++++++++++++++----------------------------------
1 file changed, 24 insertions(+), 34 deletions(-)

diff --git a/dummy/usawa/gui/core/entry_service.py b/dummy/usawa/gui/core/entry_service.py @@ -9,56 +9,46 @@ logg = logging.getLogger("core.entry_service") class EntryService: - """Business logic for ledger entries""" def __init__(self, repository: LedgerRepository): self.repository = repository def save_entry(self, entry: LedgerEntry) -> tuple[bool, str]: - try: - entry.date_registered = datetime.now() - entry.transaction_ref = self._generate_transaction_ref() + entry.date_registered = datetime.now() + entry.transaction_ref = str(uuid.uuid4()) - is_valid, error_msg = entry.validate() - if not is_valid: - logg.error(f"Entry validation failed: {error_msg}") - return False, error_msg + is_valid, error_msg = entry.validate() + if not is_valid: + logg.error(f"Entry validation failed: {error_msg}") + return False, error_msg + try: self.repository.save(entry) - - logg.info(f"Entry saved successfully") - return True, "" - - except FileExistsError as e: - error_msg = ( - "Some file information for this entry is already recorded in the ledger" + except (FileExistsError, ValueError, IOError, Exception) as e: + error_msg = self._error_message_for(e) + logg.error( + f"Save failed: {e}", + exc_info=not isinstance(e, (FileExistsError, ValueError, IOError)), ) return False, error_msg - except ValueError as e: - error_msg = f"Invalid entry data: {str(e)}" - logg.error(f"Validation error: {e}") - return False, error_msg - - except IOError as e: - error_msg = f"File error: {str(e)}" - logg.error(f"File operation failed: {e}") - return False, error_msg - - except Exception as e: - error_msg = f"Failed to save entry: {str(e)}" - logg.error(f"Unexpected error: {e}", exc_info=True) - return False, error_msg + logg.info("Entry saved successfully") + return True, "" -# def save_wallet(self, wallet, passphrase): -# return self.repository.save_wallet(wallet=wallet, passphrase=passphrase) + def _error_message_for(self, e: Exception) -> str: + if isinstance(e, FileExistsError): + return ( + "Some file information for this entry is already recorded in the ledger" + ) + if isinstance(e, ValueError): + return f"Invalid entry data: {e}" + if isinstance(e, IOError): + return f"File error: {e}" + return f"Failed to save entry: {e}" def get_all_entries(self): return self.repository.get_all_entries() - def _generate_transaction_ref(self) -> str: - return str(uuid.uuid4()) - def get_asset_bytes(self, digest: bytes) -> bytes: return self.repository.get_asset_bytes(digest=digest)