From c5e9a4132c81ce24c753b054690708fab6f5220a Mon Sep 17 00:00:00 2001 From: Cyber MacGeddon Date: Mon, 15 Sep 2025 22:59:57 +0100 Subject: [PATCH] Plumbed into API gateway --- .../trustgraph/gateway/dispatch/manager.py | 2 ++ .../gateway/dispatch/structured_diag.py | 30 +++++++++++++++++++ 2 files changed, 32 insertions(+) create mode 100644 trustgraph-flow/trustgraph/gateway/dispatch/structured_diag.py diff --git a/trustgraph-flow/trustgraph/gateway/dispatch/manager.py b/trustgraph-flow/trustgraph/gateway/dispatch/manager.py index fc582d07..6f8649f0 100644 --- a/trustgraph-flow/trustgraph/gateway/dispatch/manager.py +++ b/trustgraph-flow/trustgraph/gateway/dispatch/manager.py @@ -22,6 +22,7 @@ from . triples_query import TriplesQueryRequestor from . objects_query import ObjectsQueryRequestor from . nlp_query import NLPQueryRequestor from . structured_query import StructuredQueryRequestor +from . structured_diag import StructuredDiagRequestor from . embeddings import EmbeddingsRequestor from . graph_embeddings_query import GraphEmbeddingsQueryRequestor from . mcp_tool import McpToolRequestor @@ -57,6 +58,7 @@ request_response_dispatchers = { "objects": ObjectsQueryRequestor, "nlp-query": NLPQueryRequestor, "structured-query": StructuredQueryRequestor, + "structured-diag": StructuredDiagRequestor, } global_dispatchers = { diff --git a/trustgraph-flow/trustgraph/gateway/dispatch/structured_diag.py b/trustgraph-flow/trustgraph/gateway/dispatch/structured_diag.py new file mode 100644 index 00000000..8dae646d --- /dev/null +++ b/trustgraph-flow/trustgraph/gateway/dispatch/structured_diag.py @@ -0,0 +1,30 @@ +from ... schema import StructuredDataDiagnosisRequest, StructuredDataDiagnosisResponse +from ... messaging import TranslatorRegistry + +from . requestor import ServiceRequestor + +class StructuredDiagRequestor(ServiceRequestor): + def __init__( + self, pulsar_client, request_queue, response_queue, timeout, + consumer, subscriber, + ): + + super(StructuredDiagRequestor, self).__init__( + pulsar_client=pulsar_client, + request_queue=request_queue, + response_queue=response_queue, + request_schema=StructuredDataDiagnosisRequest, + response_schema=StructuredDataDiagnosisResponse, + subscription = subscriber, + consumer_name = consumer, + timeout=timeout, + ) + + self.request_translator = TranslatorRegistry.get_request_translator("structured-diag") + self.response_translator = TranslatorRegistry.get_response_translator("structured-diag") + + def to_request(self, body): + return self.request_translator.to_pulsar(body) + + def from_response(self, message): + return self.response_translator.from_response_with_completion(message) \ No newline at end of file