Пример #1
0
    def __compose_filter(self, filter_params: FilterParams):
        filter_params = filter_params or FilterParams()
        search = filter_params.get_as_nullable_string('search')
        id = filter_params.get_as_nullable_string('id')
        name = filter_params.get_as_nullable_string('name')
        login = filter_params.get_as_nullable_string('login')
        active = filter_params.get_as_nullable_boolean('active')
        from_create_time = filter_params.get_as_nullable_datetime(
            'from_create_time')
        to_create_time = filter_params.get_as_nullable_datetime(
            'to_create_time')
        deleted = filter_params.get_as_boolean_with_default('deleted', False)

        def inner(item: AccountV1):
            if search is not None and not self.__match_search(item, search):
                return False
            if id is not None and id != item.id:
                return False
            if name is not None and name != item.name:
                return False
            if login is not None and login != item.login:
                return False
            if active is not None and active != item.active:
                return False
            if from_create_time is not None and item.create_time >= from_create_time:
                return False
            if to_create_time is not None and item.create_time < to_create_time:
                return False
            if not deleted and item.deleted:
                return False
            return True

        return inner
    def __compose_filter(self, filter_params: FilterParams) -> Callable:
        filter_params = filter_params or FilterParams()

        search = filter_params.get_as_nullable_string('search')
        id = filter_params.get_as_nullable_string('id')
        code = filter_params.get_as_nullable_string('code')
        active = filter_params.get_as_nullable_boolean('active')
        deleted = filter_params.get_as_boolean_with_default('deleted', False)

        def inner(item):
            if id and item.id != id:
                return False
            if code and item.code != code:
                return False
            if active and item.active != active:
                return False
            if not deleted and item.deleted:
                return False
            if search and not self.__match_search(item, search):
                return False

            return True

        return inner