# faststream run faststream_app:app import asyncio import os from models.test_result import TestResult from faststream.specification.asyncapi.v3_0_0.schema import servers from pydantic import BaseModel, Field from faststream.nats import NatsBroker from urllib3.util import url NATS_SERVERS = os.getenv('NATS_URL', 'nats://localhost:4222').split(',') NATS_TOKEN = os.getenv('NATS_TOKEN', '') broker = NatsBroker(servers=NATS_SERVERS, token=NATS_TOKEN) class JobCreated(BaseModel): job_id: str name: str subject: str = "jobs.created" class JobResponse(BaseModel): job_id: str = Field(..., description="Job identifier") status: str = Field(..., description="Job status") async def main(): print("START") await broker.connect() print("CONNECTED") result = TestResult( to_server="localhost-1", test_parameters_id=5) print("ted to bude") await broker.publish( #message=JobCreated(job_id="123", name="build-image", subject="jobs.created").model_dump(), #message=["text2", 'tyext3', ], #message=str("text"), message=result.model_dump(), #subject="jobs", subject="test_topic.request", ) await broker.stop() asyncio.run(main()) # @broker.subscriber("jobs.create") # async def create_job(msg: JobCreated) -> JobResponse: # return JobResponse(job_id="123", status=f"created:{msg.name}")