Example #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: FilterParams) -> Callable:
        filter = filter if filter is not None else FilterParams()

        id = filter.get_as_nullable_string("id")
        site_id = filter.get_as_nullable_string("site_id")
        label = filter.get_as_nullable_string("label")
        udi = filter.get_as_nullable_string("udi")
        udis = filter.get_as_object("udis")
        if udis is not None and len(udis) > 0:
            udis = udis.split(",")

        def filter_beacons(item):
            if id is not None and item.id != id:
                return False
            if site_id is not None and item.site_id != site_id:
                return False
            if label is not None and item.label != label:
                return False
            if udi is not None and item.udi != udi:
                return False
            if udis is not None and item.udi not in udis:
                return False
            return True

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

        id = filter_params.get_as_nullable_string('id')
        site_id = filter_params.get_as_nullable_string('site_id')
        label = filter_params.get_as_nullable_string('label')
        udi = filter_params.get_as_nullable_string('udi')
        udis = filter_params.get_as_object('udis')
        if isinstance(udis, str):
            udis = udis.split(',')
        if not isinstance(udis, list):
            udis = None

        def inner(item):
            if id is not None and item.id != id:
                return False
            if site_id is not None and item.site_id != site_id:
                return False
            if label is not None and item.label != label:
                return False
            if udi is not None and item.udi != udi:
                return False
            if udis is not None and udis.count(item.udi) < 0:
                return False
            return True

        return inner
    def get_count_by_filter(self, correlation_id: Optional[str], filter: FilterParams) -> int:
        filter = filter or FilterParams()
        key = filter.get_as_nullable_string('key')

        filter_condition = {}
        if key is not None:
            filter_condition['key'] = key

        return super().get_count_by_filter(correlation_id, filter)
    def get_page_by_filter(self, correlation_id: Optional[str], filter: FilterParams, paging: PagingParams) -> DataPage:
        filter = filter or FilterParams()
        key = filter.get_as_nullable_string('key')

        filter_condition = {}
        if key is not None:
            filter_condition['key'] = key

        return super().get_page_by_filter(correlation_id, filter, paging, None, None)
Example #6
0
    def get_count_by_filter(self, correlation_id: Optional[str],
                            filter: FilterParams):
        filter = filter or FilterParams()
        key = filter.get_as_nullable_string('key')

        filter_condition = ''
        if key is not None:
            filter_condition += "`key`='" + key + "'"

        return super().get_count_by_filter(correlation_id, filter_condition)
    def compose_filter(self, filter: FilterParams) -> Any:
        filter = filter if filter is not None else FilterParams()
        criteria = []

        id = filter.get_as_nullable_string("id")
        if id is not None:
            criteria.append({"id": id})
        site_id = filter.get_as_nullable_string("site_id")
        if site_id is not None:
            criteria.append({"site_id": site_id})
        label = filter.get_as_nullable_string("label")
        if label is not None:
            criteria.append({"label": label})
        udi = filter.get_as_nullable_string("udi")
        if udi is not None:
            criteria.append({"udi": udi})
        udis = filter.get_as_object("udis")
        if udis is not None and len(udis) > 0:
            udis = udis.split(",")
            criteria.append({"udi": {"$in": udis}})
        return {"$and": criteria} if len(criteria) > 0 else None
Example #8
0
    def get_page_by_filter(self,
                           correlation_id: Optional[str],
                           filter: FilterParams,
                           paging: PagingParams,
                           sort=None,
                           select=None):
        filter = filter or FilterParams()
        key = filter.get_as_nullable_string('key')

        filter_condition = ''
        if key is not None:
            filter_condition += "`key`='" + key + "'"

        return super().get_page_by_filter(correlation_id, filter_condition,
                                          paging, None, None)
    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
Example #10
0
    def __compose_filter(self, filter_params: FilterParams) -> Callable:
        filter_params = filter_params or FilterParams()

        id = filter_params.get_as_nullable_string('id')
        ids = filter_params.get_as_object('ids')
        except_ids = filter_params.get_as_object('except_ids')
        roles = filter_params.get_as_object('roles')
        except_roles = filter_params.get_as_object('except_roles')

        # Process ids filter
        if isinstance(ids, str):
            ids = ids.split(',')
        if not isinstance(ids, list):
            ids = None

        # Process except ids filter
        if isinstance(except_ids, str):
            except_ids = except_ids.split(',')
        if isinstance(except_ids, list):
            except_ids = None

        # Process roles filter
        if isinstance(roles, str):
            roles = roles.split(',')
        if isinstance(roles, list):
            except_ids = None

        # Process except roles filter
        if isinstance(except_roles, str):
            except_roles = except_roles.split(',')
        if isinstance(except_roles, list):
            except_ids = None

        def inner(item):
            if id and item.id != id:
                return False
            if ids and ids.count(item.id) < 0:
                return False
            if except_ids and except_ids.count(item.id) >= 0:
                return False
            if roles and not self.__contains(roles, item.roles):
                return False
            if except_roles and self.__contains(except_roles, item.roles):
                return False

            return True

        return inner