Loading src/open_exposure_gateway/adapters/http/callback_client.py +7 −6 Changes for src/open_exposure_gateway/adapters/http/callback_client.py: 7 added lines, 6 removed lines. Original line number Diff line number Diff line Loading @@ -18,16 +18,17 @@ class HttpCallbackClient: settings = get_settings() self.timeout = settings.callback_settings.timeout async def deliver(self, sink: str, event: CallbackEvent) -> None: async def deliver( self, sink: str, event: CallbackEvent, bearer_token: str | None = None ) -> None: content: bytes = ( _DEPLOYMENT_EVENTS_ADAPTER.dump_json(event) if isinstance(event, list) else event.model_dump_json().encode() ) headers = {"Content-Type": "application/cloudevents+json"} if bearer_token is not None: headers["Authorization"] = f"Bearer {bearer_token}" async with httpx.AsyncClient(timeout=self.timeout) as client: response = await client.post( sink, content=content, headers={"Content-Type": "application/cloudevents+json"}, ) response = await client.post(sink, content=content, headers=headers) response.raise_for_status() src/open_exposure_gateway/adapters/http/qod_callback_client.py +7 −6 Changes for src/open_exposure_gateway/adapters/http/qod_callback_client.py: 7 added lines, 6 removed lines. Original line number Diff line number Diff line Loading @@ -9,11 +9,12 @@ class HttpQodCallbackClient: settings = get_settings() self.timeout = settings.callback_settings.timeout async def deliver(self, sink: str, event: QosStatusChangedCloudEvent) -> None: async def deliver( self, sink: str, event: QosStatusChangedCloudEvent, bearer_token: str | None = None ) -> None: headers = {"Content-Type": "application/cloudevents+json"} if bearer_token is not None: headers["Authorization"] = f"Bearer {bearer_token}" 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 = await client.post(sink, content=event.model_dump_json(), headers=headers) response.raise_for_status() src/open_exposure_gateway/ports/callback_delivery_port.py +3 −1 Changes for src/open_exposure_gateway/ports/callback_delivery_port.py: 3 added lines, 1 removed line. Original line number Diff line number Diff line Loading @@ -12,4 +12,6 @@ CallbackEvent = Union[ class CallbackDeliveryPort(Protocol): async def deliver(self, sink: str, event: CallbackEvent) -> None: ... async def deliver( self, sink: str, event: CallbackEvent, bearer_token: str | None = None ) -> None: ... src/open_exposure_gateway/ports/qod_callback_port.py +3 −1 Changes for src/open_exposure_gateway/ports/qod_callback_port.py: 3 added lines, 1 removed line. Original line number Diff line number Diff line Loading @@ -4,4 +4,6 @@ from open_exposure_gateway.domain.quality_on_demand import QosStatusChangedCloud class QodCallbackDeliveryPort(Protocol): async def deliver(self, sink: str, event: QosStatusChangedCloudEvent) -> None: ... async def deliver( self, sink: str, event: QosStatusChangedCloudEvent, bearer_token: str | None = None ) -> None: ... tests/unit/fakes.py +10 −2 Changes for tests/unit/fakes.py: 10 added lines, 2 removed lines. Original line number Diff line number Diff line Loading @@ -627,14 +627,22 @@ class FakeCallbackDeliveryRepository(CallbackDeliveryRepository): class FakeCallbackDeliveryPort: def __init__(self) -> None: self.delivered: list[tuple[str, CallbackEvent]] = [] self.bearer_tokens: list[str | None] = [] async def deliver(self, sink: str, event: CallbackEvent) -> None: async def deliver( self, sink: str, event: CallbackEvent, bearer_token: str | None = None ) -> None: self.delivered.append((sink, event)) self.bearer_tokens.append(bearer_token) class FakeQodCallbackDeliveryPort: def __init__(self) -> None: self.delivered: list[tuple[str, QosStatusChangedCloudEvent]] = [] self.bearer_tokens: list[str | None] = [] async def deliver(self, sink: str, event: QosStatusChangedCloudEvent) -> None: async def deliver( self, sink: str, event: QosStatusChangedCloudEvent, bearer_token: str | None = None ) -> None: self.delivered.append((sink, event)) self.bearer_tokens.append(bearer_token) Loading
src/open_exposure_gateway/adapters/http/callback_client.py +7 −6 Changes for src/open_exposure_gateway/adapters/http/callback_client.py: 7 added lines, 6 removed lines. Original line number Diff line number Diff line Loading @@ -18,16 +18,17 @@ class HttpCallbackClient: settings = get_settings() self.timeout = settings.callback_settings.timeout async def deliver(self, sink: str, event: CallbackEvent) -> None: async def deliver( self, sink: str, event: CallbackEvent, bearer_token: str | None = None ) -> None: content: bytes = ( _DEPLOYMENT_EVENTS_ADAPTER.dump_json(event) if isinstance(event, list) else event.model_dump_json().encode() ) headers = {"Content-Type": "application/cloudevents+json"} if bearer_token is not None: headers["Authorization"] = f"Bearer {bearer_token}" async with httpx.AsyncClient(timeout=self.timeout) as client: response = await client.post( sink, content=content, headers={"Content-Type": "application/cloudevents+json"}, ) response = await client.post(sink, content=content, headers=headers) response.raise_for_status()
src/open_exposure_gateway/adapters/http/qod_callback_client.py +7 −6 Changes for src/open_exposure_gateway/adapters/http/qod_callback_client.py: 7 added lines, 6 removed lines. Original line number Diff line number Diff line Loading @@ -9,11 +9,12 @@ class HttpQodCallbackClient: settings = get_settings() self.timeout = settings.callback_settings.timeout async def deliver(self, sink: str, event: QosStatusChangedCloudEvent) -> None: async def deliver( self, sink: str, event: QosStatusChangedCloudEvent, bearer_token: str | None = None ) -> None: headers = {"Content-Type": "application/cloudevents+json"} if bearer_token is not None: headers["Authorization"] = f"Bearer {bearer_token}" 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 = await client.post(sink, content=event.model_dump_json(), headers=headers) response.raise_for_status()
src/open_exposure_gateway/ports/callback_delivery_port.py +3 −1 Changes for src/open_exposure_gateway/ports/callback_delivery_port.py: 3 added lines, 1 removed line. Original line number Diff line number Diff line Loading @@ -12,4 +12,6 @@ CallbackEvent = Union[ class CallbackDeliveryPort(Protocol): async def deliver(self, sink: str, event: CallbackEvent) -> None: ... async def deliver( self, sink: str, event: CallbackEvent, bearer_token: str | None = None ) -> None: ...
src/open_exposure_gateway/ports/qod_callback_port.py +3 −1 Changes for src/open_exposure_gateway/ports/qod_callback_port.py: 3 added lines, 1 removed line. Original line number Diff line number Diff line Loading @@ -4,4 +4,6 @@ from open_exposure_gateway.domain.quality_on_demand import QosStatusChangedCloud class QodCallbackDeliveryPort(Protocol): async def deliver(self, sink: str, event: QosStatusChangedCloudEvent) -> None: ... async def deliver( self, sink: str, event: QosStatusChangedCloudEvent, bearer_token: str | None = None ) -> None: ...
tests/unit/fakes.py +10 −2 Changes for tests/unit/fakes.py: 10 added lines, 2 removed lines. Original line number Diff line number Diff line Loading @@ -627,14 +627,22 @@ class FakeCallbackDeliveryRepository(CallbackDeliveryRepository): class FakeCallbackDeliveryPort: def __init__(self) -> None: self.delivered: list[tuple[str, CallbackEvent]] = [] self.bearer_tokens: list[str | None] = [] async def deliver(self, sink: str, event: CallbackEvent) -> None: async def deliver( self, sink: str, event: CallbackEvent, bearer_token: str | None = None ) -> None: self.delivered.append((sink, event)) self.bearer_tokens.append(bearer_token) class FakeQodCallbackDeliveryPort: def __init__(self) -> None: self.delivered: list[tuple[str, QosStatusChangedCloudEvent]] = [] self.bearer_tokens: list[str | None] = [] async def deliver(self, sink: str, event: QosStatusChangedCloudEvent) -> None: async def deliver( self, sink: str, event: QosStatusChangedCloudEvent, bearer_token: str | None = None ) -> None: self.delivered.append((sink, event)) self.bearer_tokens.append(bearer_token)