import json import logging from fasthtml.fastapp import fast_app from components.admin.constants import Routes from core.instance_manager import debug_session, InstanceManager admin_app, rt = fast_app() logger = logging.getLogger("admin") @rt(Routes.AiBuddy) def get(session, _id: str, boundaries: str): logger.debug(f"Entering {Routes.AiBuddy} - GET with args {debug_session(session)}, {_id=}, {boundaries=}") instance = InstanceManager.get(session, _id) return instance.show_ai_buddy_form(json.loads(boundaries) if boundaries else None) @rt(Routes.AiBuddy) def post(session, _id: str, args: dict): logger.debug(f"Entering {Routes.AiBuddy} - POST with args {debug_session(session)}, {_id=}, {args=}") instance = InstanceManager.get(session, _id) return instance.update_ai_buddy_settings(args) @rt(Routes.AiBuddyCancel) def post(session, _id: str): logger.debug(f"Entering {Routes.AiBuddyCancel} with args {debug_session(session)}, {_id=}") instance = InstanceManager.get(session, _id) return instance.cancel_ai_buddy_settings() @rt(Routes.ImportHolidays) def get(session, _id: str, boundaries: str): logger.debug(f"Entering {Routes.ImportHolidays} - GET with args {debug_session(session)}, {_id=}, {boundaries=}") instance = InstanceManager.get(session, _id) return instance.show_import_holidays_form(json.loads(boundaries) if boundaries else None) @rt(Routes.PasteHolidays) def post(session, _id: str, content: str): logger.debug(f"Entering {Routes.PasteHolidays} with args {debug_session(session)}, {_id=}") instance = InstanceManager.get(session, _id) return instance.on_paste(content) @rt(Routes.ImportHolidays) def post(session, _id: str): logger.debug(f"Entering {Routes.ImportHolidays} with args {debug_session(session)}, {_id=}") instance = InstanceManager.get(session, _id) return instance.import_holidays() @rt(Routes.ConfigureJira) def get(session, _id: str, boundaries: str): logger.debug(f"Entering {Routes.ConfigureJira} - GET with args {debug_session(session)}, {_id=}, {boundaries=}") instance = InstanceManager.get(session, _id) return instance.show_configure_jira(json.loads(boundaries) if boundaries else None) @rt(Routes.ConfigureJira) def post(session, _id: str, args: dict): logger.debug(f"Entering {Routes.ConfigureJira} - POST with args {debug_session(session)}, {_id=}, {args=}") instance = InstanceManager.get(session, _id) return instance.update_jira_settings(args) @rt(Routes.ConfigureJiraCancel) def post(session, _id: str): logger.debug(f"Entering {Routes.ConfigureJiraCancel} with args {debug_session(session)}, {_id=}") instance = InstanceManager.get(session, _id) return instance.cancel_jira_settings() @rt(Routes.ConfigureJiraTest) def post(session, _id: str, args: dict): logger.debug(f"Entering {Routes.ConfigureJiraTest} with args {debug_session(session)}, {_id=}, {args=}") instance = InstanceManager.get(session, _id) return instance.test_jira_settings(args)