sp-hydra-veil-gui/gui/v2/actions/ticket_failure.py
2026-06-13 16:19:11 -04:00

57 lines
2 KiB
Python
Executable file

import logging
from datetime import datetime, timezone
from gui.v2.actions.config import load_gui_config, save_gui_config, default_gui_config
def save_ticket_verification_failure(gui_config_file, result):
try:
failed_validations = result.get('failed_validations', []) if isinstance(result, dict) else []
if not failed_validations:
return False
config = load_gui_config(gui_config_file)
if config is None:
config = default_gui_config()
if "tickets" not in config:
config["tickets"] = {}
config["tickets"]["failed_verification"] = {
"message": result.get('message', 'verification_failed'),
"how_many_failed": result.get('how_many_failed', len(failed_validations)),
"failed_validations": list(failed_validations),
"updated_at": datetime.now(timezone.utc).isoformat(),
}
save_gui_config(gui_config_file, config)
return True
except Exception as e:
logging.error(f"Error saving ticket verification failure: {e}")
return False
def get_ticket_verification_failure(gui_config_file):
try:
config = load_gui_config(gui_config_file)
if not config:
return None
failure = config.get("tickets", {}).get("failed_verification")
if not isinstance(failure, dict):
return None
failed_validations = failure.get("failed_validations")
if not failed_validations:
return None
return failure
except Exception as e:
logging.error(f"Error loading ticket verification failure: {e}")
return None
def clear_ticket_verification_failure(gui_config_file):
try:
config = load_gui_config(gui_config_file)
if not config or "tickets" not in config:
return
config["tickets"].pop("failed_verification", None)
save_gui_config(gui_config_file, config)
except Exception as e:
logging.error(f"Error clearing ticket verification failure: {e}")