def find_previous_by_data_collector_and_dev_eui(cls, date, data_collector_id, dev_eui=None): previous_date = session.query(func.max( Packet.date)).filter(Packet.date < date).filter( Packet.data_collector_id == data_collector_id).filter( Packet.dev_eui == dev_eui).scalar() return session.query(Packet).filter( Packet.date == previous_date).filter( Packet.data_collector_id == data_collector_id).filter( Packet.dev_eui == dev_eui).first()
def find_one(cls, id=None): query = session.query(cls) if id: query = query.filter(cls.id == id) return query.first()
def find_previous_by_data_collector_and_dev_eui(cls, date, data_collector_id, dev_eui=None): return session.query(Packet).filter(Packet.date < date).filter( Packet.data_collector_id == data_collector_id).filter( Packet.dev_eui == dev_eui).order_by(desc(Packet.date)).first()
def find_one_by_dev_eui_and_join_eui_and_datacollector_id( cls, dev_eui, join_eui, data_collector_id): query = session.query(cls).filter(cls.dev_eui == dev_eui, cls.join_eui == join_eui) query = query.filter(cls.id == DataCollectorToDevice.device_id).filter( DataCollectorToDevice.data_collector_id == data_collector_id) return query.first()
def find(cls, dev_eui, data_collector_id): query = session.query(cls) if data_collector_id: query = query.filter(cls.id == DataCollectorToDevice.device_id).filter(DataCollectorToDevice.data_collector_id == data_collector_id) if dev_eui: query = query.filter(cls.dev_eui == dev_eui) return query.all()
def find_only_one_gateway_by_device_id(cls, device_id): result= session.query(cls).join(GatewayToDevice).filter(GatewayToDevice.device_id == device_id).all() if len(result)== 1: return result[0] return None
def find_one_by_dev_addr_and_datacollector_id(cls, dev_addr, data_collector_id): query = session.query(cls).filter(cls.dev_addr == dev_addr) query = query.join(DataCollectorToDeviceSession).filter( DataCollectorToDeviceSession.data_collector_id == data_collector_id) return query.first()
def find(cls, dev_eui, join_eui, organization_id): query = session.query(cls) if organization_id: query = query.filter(cls.organization_id == organization_id) if join_eui: query = query.filter(cls.device_id == Device.id).filter(Device.join_eui == join_eui) if dev_eui: query = query.filter(cls.device_id == Device.id).filter(Device.dev_eui == dev_eui) return query.all()
def saveIfNotExists(cls, dev_nonce, device_id, packet_id): existing_dev_nonces = session.query(DevNonce).filter(DevNonce.dev_nonce == dev_nonce).filter(DevNonce.device_id == device_id).all() if len(existing_dev_nonces): prev_packet_id = existing_dev_nonces[0].packet_id existing_dev_nonces[0].packet_id = packet_id return prev_packet_id else: DevNonce( dev_nonce = dev_nonce, device_id = device_id, packet_id = packet_id ).save() session.flush() return None
def find_by_organization_id_and_created_at(cls, organization_id, since, until): return session.query(cls).filter(cls.packet_id == Packet.id).filter(DataCollector.id == Packet.data_collector_id).filter(DataCollector.organization_id == organization_id).filter(cls.created_at > since, cls.created_at < until).all()
def find_one(cls, id): return session.query(cls).filter(cls.id == id).first()
def find_one_by_data_collector_id_and_device_session_id(cls, data_collector_id, device_session_id): return session.query(cls).filter(cls.data_collector_id == data_collector_id, cls.device_session_id == device_session_id).first()
def find_one_by_analyzer(cls, analyzer_id): return session.query(cls).filter(cls.analyzer == analyzer_id).first()
def find_all_by_device_auth_id(cls, dev_auth_data_id): return session.query(cls).filter(cls.device_auth_data_id == dev_auth_data_id).all()
def find_all_by_organization_id_after_datetime(cls, organization_id, since): return session.query(cls).filter(cls.organization_id == organization_id, cls.last_seen > since).order_by(desc(cls.last_seen)).all()
def find_region_by_id(cls, id): return session.query(cls).filter(cls.id == id).first().region
def find_type_by_id(cls, id): return session.query(cls).filter(cls.id == id).first().type
def find_one_by_ip_port_and_dctype_id(cls, dctype_id, ip, port): return session.query(cls).filter(cls.ip == ip).filter( cls.data_collector_type_id == dctype_id).filter( cls.port == port).first()
def find_one_by_gateway_id_and_device_session_id(cls, gateway_id, device_session_id): return session.query(cls).filter(cls.device_session_id == device_session_id, cls.gateway_id == gateway_id).first()
def find_one_by_code(cls, code): return session.query(cls).filter(cls.code == code).first()
def find_one_by_gw_hex_id_and_organization_id(cls, gw_hex_id, organization_id): return session.query(cls).filter(cls.gw_hex_id == gw_hex_id, cls.organization_id == organization_id).first()
def find_one_by_name_and_dctype_id(cls, dctype_id, name): return session.query(cls).filter(cls.data_collector_type_id == dctype_id, cls.name == name).first()
def find_by_organization_id_and_mtype_and_date(cls, organization_id, mtype, since, until): return session.query(cls).filter(cls.organization_id == organization_id).filter(cls.date > since, cls.date < until, cls.m_type == mtype).all()
def find_by_organization_id_and_last_up(cls, organization_id, since, until): return session.query(cls).filter(cls.organization_id == organization_id).filter(cls.last_up_timestamp > since, cls.last_up_timestamp < until).all()
def find_one_by_type(cls, type): return session.query(cls).filter(cls.type == type).first()
def find_all_from(cls, id, size = 1000): return session.query(Packet).filter(Packet.id >= id).order_by(asc(Packet.id)).limit(size).all()
def find_one_by_region(cls, region): return session.query(cls).filter(cls.region == region).first()
def rows_quantity(cls): return session.query(func.max(cls.id)).scalar()
def count(cls): return session.query(func.count(cls.id)).scalar()
def find_one_by_device_id(cls, device_id): return session.query(cls).filter(cls.device_id == device_id).first()