25 lines
510 B
Python
25 lines
510 B
Python
from core.models.Event import Event
|
|
|
|
|
|
class BaseObserver:
|
|
|
|
def subscribe(self, topic, callback):
|
|
|
|
callbacks = getattr(self, f'on_{topic}', None)
|
|
|
|
if callbacks is None:
|
|
return
|
|
|
|
callbacks.append(callback)
|
|
|
|
def notify(self, topic, subject = None, meta = None):
|
|
|
|
callbacks = getattr(self, f'on_{topic}', None)
|
|
|
|
if callbacks is None:
|
|
return
|
|
|
|
event = Event(subject, meta)
|
|
|
|
for callback in callbacks:
|
|
callback(event)
|