in modular_api/services/audit_service.py [0:0]
def get_audit(group, command, from_date, to_date, limit
) -> ResultIterator[Audit]:
"""
Returns iterator with filtered results
"""
_LOG.info('Describing audit table')
filter_condition = None
range_key_condition = None
# some kludges
if isinstance(from_date, datetime):
from_date = from_date.isoformat()
if isinstance(to_date, datetime):
to_date = to_date.isoformat()
if from_date and to_date:
range_key_condition &= (
Audit.timestamp.between(from_date, to_date))
elif from_date:
range_key_condition &= (Audit.timestamp >= from_date)
elif to_date:
range_key_condition &= (Audit.timestamp <= to_date)
else:
# describe in docs
initial_date = datetime.today().replace(
hour=0, minute=0, second=0, microsecond=0) - timedelta(days=7)
range_key_condition &= (Audit.timestamp >= initial_date.isoformat())
if command:
filter_condition &= (Audit.command == command)
if group:
return Audit.query(hash_key=group,
filter_condition=filter_condition,
range_key_condition=range_key_condition,
limit=limit)
if range_key_condition is not None:
filter_condition &= range_key_condition
return Audit.scan(filter_condition=filter_condition)