def list_all_events(start_time: int, session=None): conditions = [EventModel.create_time >= start_time] event_model_list = session.query(EventModel).filter(*conditions).all() return [ event_model_to_event(event_model) for event_model in event_model_list ]
def list_events(key: Union[str, Tuple[str]], version: int = None, event_type: str = None, start_time: int = None, namespace: str = None, session=None): key = None if key == "" else key event_type = None if event_type == "" else event_type namespace = None if namespace == "" else namespace if isinstance(key, str): key = (key, ) elif isinstance(key, Iterable): key = tuple(key) if key is None: raise Exception('key cannot be empty.') conditions = [] if event_type is not None and event_type != ANY_CONDITION: conditions.append(EventModel.event_type == event_type) if start_time is not None and start_time > 0: conditions.append(EventModel.create_time >= start_time) if ANY_CONDITION != namespace: conditions.append(EventModel.namespace == namespace) if version > 0: conditions.append(EventModel.version > version) if ANY_CONDITION not in key: conditions.append(EventModel.key.in_(key)) event_model_list = session.query(EventModel).filter(*conditions).all() return [ event_model_to_event(event_model) for event_model in event_model_list ]
def list_all_events_from_version(start_version: int, end_version: int = None, session=None): conditions = [EventModel.version > start_version] if end_version is not None and end_version > 0: conditions.append(EventModel.version <= end_version) event_model_list = session.query(EventModel).filter(*conditions).all() return [ event_model_to_event(event_model) for event_model in event_model_list ]
def sync_event(event: BaseEvent, uuid, session=None): event_model = EventModel() event_model.key = event.key event_model.value = event.value event_model.event_type = event.event_type event_model.context = event.context event_model.namespace = event.namespace event_model.create_time = event.create_time event_model.uuid = uuid session.add(event_model) session.commit() return event_model_to_event(event_model)
def add_event(event: BaseEvent, uuid, session=None): event_model = EventModel() event_model.key = event.key event_model.value = event.value event_model.event_type = event.event_type event_model.context = event.context event_model.namespace = event.namespace event_model.create_time = int(time.time() * 1000) event_model.uuid = uuid event_model.sender = event.sender session.add(event_model) session.commit() return event_model_to_event(event_model)