Commit 5dfdba1d authored by George Papathanail's avatar George Papathanail
Browse files

feat add callback_settings and public_base_url to Settings

parent b6a0e00c
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -7,6 +7,7 @@
# DEBUG=false
# HOST="0.0.0.0"
# PORT=8080
# PUBLIC_BASE_URL="http://localhost:8080"

# SRM_SETTINGS__BASE_URL="http://localhost:8081"
# SRM_SETTINGS__TIMEOUT=10.0
@@ -20,3 +21,5 @@
# NATS_SETTINGS__MAX_RECONNECT_ATTEMPTS=3

# OBSERVABILITY_SETTINGS__LOG_LEVEL="INFO"

# CALLBACK_SETTINGS__TIMEOUT=10.0
+19 −0
Original line number Diff line number Diff line
import httpx

from open_exposure_gateway.core.config import get_settings
from open_exposure_gateway.domain.quality_on_demand import QosStatusChangedCloudEvent


class HttpQodCallbackClient:
    def __init__(self) -> None:
        settings = get_settings()
        self.timeout = settings.callback_settings.timeout

    async def deliver(self, sink: str, event: QosStatusChangedCloudEvent) -> None:
        async with httpx.AsyncClient(timeout=self.timeout) as client:
            response = await client.post(
                sink,
                content=event.model_dump_json(),
                headers={"Content-Type": "application/cloudevents+json"},
            )
        response.raise_for_status()
+5 −0
Original line number Diff line number Diff line
@@ -29,6 +29,10 @@ class ObservabilitySettings(BaseModel):
    log_level: str = "INFO"


class CallbackSettings(BaseModel):
    timeout: float = 10.0


class Settings(BaseSettings):
    model_config = SettingsConfigDict(
        env_file=".env",
@@ -43,6 +47,7 @@ class Settings(BaseSettings):
    debug: bool = False
    host: str = "0.0.0.0"
    port: int = 8080
    public_base_url: str = "http://localhost:8080"
    srm_settings: SRMSettings = SRMSettings()
    postgresql_settings: PostgreSQLSettings = PostgreSQLSettings()
    nats_settings: NatsSettings = NatsSettings()