136 lines
5.0 KiB
Python
136 lines
5.0 KiB
Python
import json
|
|
import logging
|
|
|
|
from fasthtml.fastapp import fast_app
|
|
|
|
from components.workflows.constants import Routes
|
|
from core.instance_manager import InstanceManager, debug_session
|
|
|
|
logger = logging.getLogger("WorkflowsApp")
|
|
|
|
repositories_app, rt = fast_app()
|
|
|
|
|
|
@rt(Routes.AddWorkflow)
|
|
def get(session, _id: str):
|
|
logger.debug(f"Entering {Routes.AddWorkflow} with args {debug_session(session)}, {_id=}")
|
|
instance = InstanceManager.get(session, _id)
|
|
return instance.request_new_workflow()
|
|
|
|
|
|
@rt(Routes.AddWorkflow)
|
|
def post(session, _id: str, tab_id: str, form_id: str, name: str, tab_boundaries: str):
|
|
logger.debug(
|
|
f"Entering {Routes.AddWorkflow} with args {debug_session(session)}, {_id=}, {tab_id=}, {form_id=}, {name=}, {tab_boundaries=}")
|
|
instance = InstanceManager.get(session, _id)
|
|
return instance.add_new_workflow(tab_id, form_id, name, json.loads(tab_boundaries))
|
|
|
|
|
|
@rt(Routes.ShowWorkflow)
|
|
def post(session, _id: str, name: str, tab_boundaries: str):
|
|
logger.debug(
|
|
f"Entering {Routes.AddWorkflow} with args {debug_session(session)}, {_id=}, {name=}, {tab_boundaries=}")
|
|
instance = InstanceManager.get(session, _id)
|
|
return instance.show_workflow(name, json.loads(tab_boundaries))
|
|
|
|
|
|
@rt(Routes.AddComponent)
|
|
def post(session, _id: str, component_type: str, x: int, y: int):
|
|
logger.debug(
|
|
f"Entering {Routes.AddComponent} with args {debug_session(session)}, {_id=}, {component_type=}, {x=}, {y=}")
|
|
instance = InstanceManager.get(session, _id)
|
|
return instance.add_component(component_type, x, y)
|
|
|
|
|
|
@rt(Routes.MoveComponent)
|
|
def post(session, _id: str, component_id: str, x: int, y: int):
|
|
logger.debug(
|
|
f"Entering {Routes.MoveComponent} with args {debug_session(session)}, {_id=}, {component_id=}, {x=}, {y=}")
|
|
instance = InstanceManager.get(session, _id)
|
|
return instance.move_component(component_id, x, y)
|
|
|
|
|
|
@rt(Routes.DeleteComponent)
|
|
def post(session, _id: str, component_id: str):
|
|
logger.debug(
|
|
f"Entering {Routes.DeleteComponent} with args {debug_session(session)}, {_id=}, {component_id=}")
|
|
instance = InstanceManager.get(session, _id)
|
|
return instance.delete_component(component_id)
|
|
|
|
|
|
@rt(Routes.AddConnection)
|
|
def post(session, _id: str, from_id: str, to_id: str):
|
|
logger.debug(
|
|
f"Entering {Routes.AddConnection} with args {debug_session(session)}, {_id=}, {from_id=}, {to_id=}")
|
|
instance = InstanceManager.get(session, _id)
|
|
return instance.add_connection(from_id, to_id)
|
|
|
|
|
|
@rt(Routes.DeleteConnection)
|
|
def post(session, _id: str, from_id: str, to_id: str):
|
|
logger.debug(
|
|
f"Entering {Routes.DeleteConnection} with args {debug_session(session)}, {_id=}, {from_id=}, {to_id=}")
|
|
instance = InstanceManager.get(session, _id)
|
|
return instance.delete_connection(from_id, to_id)
|
|
|
|
|
|
@rt(Routes.ResizeDesigner)
|
|
def post(session, _id: str, designer_height: int):
|
|
logger.debug(
|
|
f"Entering {Routes.ResizeDesigner} with args {debug_session(session)}, {_id=}, {designer_height=}")
|
|
instance = InstanceManager.get(session, _id)
|
|
return instance.set_designer_height(designer_height)
|
|
|
|
|
|
@rt(Routes.SelectComponent)
|
|
def post(session, _id: str, component_id: str):
|
|
logger.debug(
|
|
f"Entering {Routes.SelectComponent} with args {debug_session(session)}, {_id=}, {component_id=}")
|
|
instance = InstanceManager.get(session, _id)
|
|
return instance.select_component(component_id)
|
|
|
|
|
|
@rt(Routes.SaveProperties)
|
|
def post(session, _id: str, component_id: str, details: dict):
|
|
logger.debug(
|
|
f"Entering {Routes.SaveProperties} with args {debug_session(session)}, {_id=}, {component_id=}, {details=}")
|
|
instance = InstanceManager.get(session, _id)
|
|
details.pop("_id")
|
|
details.pop("component_id")
|
|
return instance.save_properties(component_id, details)
|
|
|
|
|
|
@rt(Routes.CancelProperties)
|
|
def post(session, _id: str, component_id: str):
|
|
logger.debug(
|
|
f"Entering {Routes.CancelProperties} with args {debug_session(session)}, {_id=}, {component_id=}")
|
|
instance = InstanceManager.get(session, _id)
|
|
return instance.cancel_properties(component_id)
|
|
|
|
|
|
@rt(Routes.SelectProcessor)
|
|
def post(session, _id: str, component_id: str, processor_name: str):
|
|
logger.debug(
|
|
f"Entering {Routes.SelectProcessor} with args {debug_session(session)}, {_id=}, {component_id=}, {processor_name=}")
|
|
instance = InstanceManager.get(session, _id)
|
|
return instance.set_selected_processor(component_id, processor_name)
|
|
|
|
|
|
@rt(Routes.OnProcessorDetailsEvent)
|
|
def post(session, _id: str, component_id: str, event_name: str, details: dict):
|
|
logger.debug(
|
|
f"Entering {Routes.OnProcessorDetailsEvent} with args {debug_session(session)}, {_id=}, {component_id=}, {event_name=}, {details=}")
|
|
instance = InstanceManager.get(session, _id)
|
|
details.pop("_id")
|
|
details.pop("component_id")
|
|
details.pop("event_name")
|
|
return instance.on_processor_details_event(component_id, event_name, details)
|
|
|
|
|
|
@rt(Routes.PlayWorkflow)
|
|
def post(session, _id: str, tab_boundaries: str):
|
|
logger.debug(
|
|
f"Entering {Routes.PlayWorkflow} with args {debug_session(session)}, {_id=}")
|
|
instance = InstanceManager.get(session, _id)
|
|
return instance.play_workflow(json.loads(tab_boundaries))
|