Files
core/nodes/vork_node_callback.py
2025-11-15 15:10:17 +05:00

68 lines
1.9 KiB
Python

from typing import Dict, Any
from core import VorkNode
from model_nodes.node_callback_models import (
CallbackNodeData,
CallbackNodeLinks,
CallbackNodeCoreSchema,
CallbackNodeCoreSchemaData,
CALLBACK_FORM_DESCRIPTOR,
)
class VorkNodeCallback(VorkNode):
def __init__(self, data: Dict[str, Any], links: Dict[str, Any] = None):
"""
Инициализация узла callback
"""
super().__init__(data, links or {})
@property
def id(self) -> str:
return "CALLBACK"
@classmethod
def form(cls) -> Dict[str, Any]:
"""
Возвращает статический дескриптор формы для узла Callback
"""
return CALLBACK_FORM_DESCRIPTOR
def validate(self) -> CallbackNodeCoreSchema:
"""
Валидирует данные узла callback и возвращает схему
"""
try:
validated_data = self.validate_data()
validated_links = self.validate_links()
node_data = None
return CallbackNodeCoreSchema(
ps_id=validated_data.ps_id,
node_type=validated_data.node_type,
parent_id=validated_links.parent_id,
parent_port_number=validated_links.parent_port_number,
data=node_data
)
except Exception as e:
print(f"Callback node validation error: {e}")
raise
def validate_data(self) -> CallbackNodeData:
"""
Валидирует данные узла callback
"""
return CallbackNodeData(**self.data)
def validate_links(self) -> CallbackNodeLinks:
"""
Валидирует связи узла callback
"""
return CallbackNodeLinks(**self.links)
def process(self, context):
pass