sql_app: db: Fixed column copy warning.
A warning was raised whenever the user<->device relation was accessed. The assumption is that now the queries perform faster, having fixed this issue. Signed-off-by: HeshamTB <hishaminv@gmail.com>
This commit is contained in:
		
							parent
							
								
									232ff82c46
								
							
						
					
					
						commit
						244b7c6b91
					
				@ -70,9 +70,11 @@ def create_iot_entity(db: Session, iot_entity: schemas.IotEntityCreate):
 | 
			
		||||
 | 
			
		||||
def create_user_link_to_iot(db: Session, user_id: int, iot_dev_id: int):
 | 
			
		||||
    # Ensure link is not already present and it does not allow duplicates
 | 
			
		||||
    link = db.query(models.UserAuthToIoTDev).filter(models.UserAuthToIoTDev.user_id == user_id).filter(models.UserAuthToIoTDev.iot_entity_id == iot_dev_id).first()
 | 
			
		||||
    link = db.query(models.UserAuthToIoTDev).filter(models.UserAuthToIoTDev.user_id == user_id).filter(models.UserAuthToIoTDev.iot_id == iot_dev_id).first()
 | 
			
		||||
    if link: return True
 | 
			
		||||
    new_link = models.UserAuthToIoTDev(user_id=user_id, iot_entity_id=iot_dev_id)
 | 
			
		||||
    new_link = models.UserAuthToIoTDev(user_id=user_id,
 | 
			
		||||
                                       iot_id=iot_dev_id,
 | 
			
		||||
                                       timestamp=datetime.now())
 | 
			
		||||
    db.add(new_link)
 | 
			
		||||
    db.commit()
 | 
			
		||||
    db.refresh(new_link)
 | 
			
		||||
 | 
			
		||||
@ -15,7 +15,8 @@ class User(Base):
 | 
			
		||||
    is_active = Column(Boolean, default=True, nullable=False)
 | 
			
		||||
    last_token = Column(String, nullable=True)
 | 
			
		||||
 | 
			
		||||
    authorized_devices = relationship("IotEntity", secondary= 'user_iot_link')
 | 
			
		||||
    authorized_devices = relationship("IotEntity", secondary="user_iot_link", back_populates="authorized_users")
 | 
			
		||||
    #authorized_devices = relationship("IotEntity", secondary= 'user_iot_link')
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class IotEntity(Base):
 | 
			
		||||
@ -26,13 +27,15 @@ class IotEntity(Base):
 | 
			
		||||
    description = Column(String(512))
 | 
			
		||||
    open_request = Column(Boolean, default=False)
 | 
			
		||||
    time_seconds = Column(Integer, default=10)
 | 
			
		||||
    authorized_users = relationship("User", secondary= 'user_iot_link')
 | 
			
		||||
    authorized_users = relationship("User", secondary="user_iot_link", back_populates="authorized_devices")
 | 
			
		||||
    #authorized_users = relationship("User", secondary= 'user_iot_link')
 | 
			
		||||
 | 
			
		||||
class UserAuthToIoTDev(Base):
 | 
			
		||||
    __tablename__ = "user_iot_link"
 | 
			
		||||
 | 
			
		||||
    user_id = Column(Integer, ForeignKey('user_accounts.id'), primary_key=True, index=True)
 | 
			
		||||
    iot_entity_id = Column(Integer, ForeignKey('iot_entities.id'), primary_key=True, index=True)
 | 
			
		||||
    user_id = Column(Integer, ForeignKey("user_accounts.id"), primary_key=True)
 | 
			
		||||
    iot_id = Column(Integer, ForeignKey("iot_entities.id"), primary_key=True)
 | 
			
		||||
    timestamp = Column(DateTime)
 | 
			
		||||
 | 
			
		||||
class DoorAccessLog(Base):
 | 
			
		||||
    __tablename__ = "door_access_log"
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user