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
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 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