Woodpecker event registered

This commit is contained in:
Piotr Dec 2025-10-31 23:30:35 +01:00
parent 87e8af3f72
commit 29dfc13a48
Signed by: stawros
GPG key ID: 74B18A3F0F1E99C0
3 changed files with 16 additions and 13 deletions

View file

@ -1,22 +1,25 @@
import logging
from typing import Annotated
from injectable import injectable
from injectable import injectable, Autowired, autowired, inject, injectable_factory
from app.events import SimpleEventBus
from app.model.webhook import WebhookEvent
logger = logging.getLogger(__name__)
@injectable
class Woodpecker:
@SimpleEventBus.on(WebhookEvent)
def on_event(self, event): # TODO: caller nie działa -> brakuje instancji klasy?
@injectable(singleton=True)
class Woodpecker:
@autowired
def __init__(self, event_bus: Annotated[SimpleEventBus, Autowired]):
logger.info("Woodpecker initialized.")
event_bus.subscribe(WebhookEvent, self.on_ci_event)
def on_ci_event(self, event):
logger.info(f"Received event: {event}")
pass
@SimpleEventBus.on(WebhookEvent)
def on_event2(event): # TODO: Tu działa
logger.info(f"F2: Received event: {event}")
pass
instance = Woodpecker(inject(SimpleEventBus))
injectable_factory(Woodpecker)(lambda: instance)

View file

@ -18,9 +18,9 @@ class SimpleEventBus:
self._executor = ThreadPoolExecutor()
def publish(self, event: Event) -> None:
for handler in self._handlers.get(type(event), []):
# Fire-and-forget execution
self._executor.submit(handler, event)
for handler in self._handlers.get(type(event), []):
# Fire-and-forget execution
self._executor.submit(handler, event)
def subscribe(self, event_type: type, handler: Callable) -> None:
if event_type not in self._handlers: