sql_app: Added state to Iot Door

Signed-off-by: HeshamTB <hishaminv@gmail.com>
This commit is contained in:
HeshamTB 2022-06-07 18:58:23 +03:00
parent 2eed2db77e
commit 3bcb333df6
Signed by: Hesham
GPG Key ID: 74876157D199B09E
4 changed files with 12 additions and 0 deletions

View File

@ -126,6 +126,12 @@ def set_user_last_token(db: Session, username: str, token: str):
db.refresh(user) db.refresh(user)
return True return True
def set_door_state(db: Session, iot_device: models.IotEntity, state: bool):
iot_device.state = state
db.add(iot_device)
db.commit()
db.refresh(iot_device)
def get_user_last_token(db: Session, username: str): def get_user_last_token(db: Session, username: str):
user : models.User = get_user_by_username(db, username) user : models.User = get_user_by_username(db, username)
return user.last_token # This method is bad security practice. return user.last_token # This method is bad security practice.

View File

@ -304,6 +304,8 @@ def polling_method_for_iot_entity(request: schemas.IotDoorPollingRequest,
# Reset open_request to False # Reset open_request to False
crud.clear_open_door_request(db, device.id) crud.clear_open_door_request(db, device.id)
crud.clear_close_door_request(db, device.id) crud.clear_close_door_request(db, device.id)
crud.set_door_state(db, device, device.state)
return response return response
@app.post("/iotdevice/monitor/status", tags=['Iot']) @app.post("/iotdevice/monitor/status", tags=['Iot'])

View File

@ -28,6 +28,7 @@ class IotEntity(Base):
time_seconds = Column(Integer, default=10) time_seconds = Column(Integer, default=10)
acces_list_counter = Column(Integer, default=0) acces_list_counter = Column(Integer, default=0)
force_close = Column(Boolean, default=False) force_close = Column(Boolean, default=False)
state = Column(Boolean, default=False) # True is open, False is closed
authorized_users = relationship("User", secondary="user_iot_link", back_populates="authorized_devices") authorized_users = relationship("User", secondary="user_iot_link", back_populates="authorized_devices")
class UserAuthToIoTDev(Base): class UserAuthToIoTDev(Base):
@ -63,4 +64,6 @@ class UserConnectionHistory(Base):
reading_id = Column(Integer, primary_key=True) reading_id = Column(Integer, primary_key=True)
user_id = Column(Integer,ForeignKey("user_accounts.id"), index=True) user_id = Column(Integer,ForeignKey("user_accounts.id"), index=True)
timestamp = Column(DateTime) timestamp = Column(DateTime)
# TODO: add ip
# TODO: Add table to store active sessions. May periodically clear. # TODO: Add table to store active sessions. May periodically clear.

View File

@ -72,6 +72,7 @@ class CloseDoorRequest(OpenDoorRequestBase):
# Device sends this periodcally # Device sends this periodcally
class IotDoorPollingRequest(BaseModel): class IotDoorPollingRequest(BaseModel):
bluetooth_mac : str bluetooth_mac : str
state: int
token : str token : str
class Config: class Config:
orm_mode = True orm_mode = True