app-MAIL-temp/events/event_sink.py
Carlos Quintana 3e0b7bb369
Add sync events (#2113)
* feat: add protocol buffers for events

* chore: add EventDispatcher

* chore: add WebhookEvent class

* chore: emit events

* feat: initial version of event listener

* chore: emit user plan change with new timestamp

* feat: emit metrics + add alias status to create event

* chore: add newrelic decorator to functions

* fix: event emitter fixes

* fix: take null end_time into account

* fix: avoid double-commits

* chore: move UserDeleted event to User.delete method

* db: add index to sync_event created_at and taken_time columns

* chore: add index to model
2024-05-23 10:27:08 +02:00

20 lines
404 B
Python

from abc import ABC, abstractmethod
from app.log import LOG
from app.models import SyncEvent
class EventSink(ABC):
@abstractmethod
def process(self, event: SyncEvent):
pass
class HttpEventSink(EventSink):
def process(self, event: SyncEvent):
pass
class ConsoleEventSink(EventSink):
def process(self, event: SyncEvent):
LOG.info(f"Handling event {event.id}")