def get_entity_events(self, stored_entity_id, after=None, until=None, limit=None, query_ascending=True, results_ascending=True): try: query = self.db_session.query(SqlStoredEvent) query = query.filter_by(stored_entity_id=stored_entity_id) if query_ascending: query = query.order_by(asc(SqlStoredEvent.timestamp_long)) else: query = query.order_by(desc(SqlStoredEvent.timestamp_long)) if after is not None: if query_ascending: query = query.filter(SqlStoredEvent.timestamp_long > timestamp_long_from_uuid(after)) else: query = query.filter(SqlStoredEvent.timestamp_long >= timestamp_long_from_uuid(after)) if until is not None: if query_ascending: query = query.filter(SqlStoredEvent.timestamp_long <= timestamp_long_from_uuid(until)) else: query = query.filter(SqlStoredEvent.timestamp_long < timestamp_long_from_uuid(until)) if limit is not None: query = query.limit(limit) events = self.map(from_sql, query) events = list(events) finally: self.db_session.close() if results_ascending != query_ascending: events.reverse() return events
def to_sql(stored_event): assert isinstance(stored_event, StoredEvent) return SqlStoredEvent(event_id=stored_event.event_id, timestamp_long=timestamp_long_from_uuid( stored_event.event_id), stored_entity_id=stored_event.stored_entity_id, event_attrs=stored_event.event_attrs, event_topic=stored_event.event_topic)
def to_sql(stored_event): assert isinstance(stored_event, StoredEvent) return SqlStoredEvent( event_id=stored_event.event_id, timestamp_long=timestamp_long_from_uuid(stored_event.event_id), stored_entity_id=stored_event.stored_entity_id, event_attrs=stored_event.event_attrs, event_topic=stored_event.event_topic )