57 lines
2 KiB
Python
Executable file
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}")
|