def get_audit()

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)