sql_app: added init db
Signed-off-by: HeshamTB <hishaminv@gmail.com>
This commit is contained in:
parent
311058f09b
commit
e45e335d50
38
sql_app/init_db.py
Normal file
38
sql_app/init_db.py
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
|
||||||
|
from . import crud, main, schemas, auth_helper
|
||||||
|
from decouple import config
|
||||||
|
from .database import SessionLocal
|
||||||
|
from datetime import timedelta
|
||||||
|
|
||||||
|
db = SessionLocal()
|
||||||
|
|
||||||
|
def init_user():
|
||||||
|
user = schemas.UserCreate(email="hisham@banafa.com.sa",
|
||||||
|
username="Hesham",
|
||||||
|
password=config('first_user_pass'))
|
||||||
|
user_exists = crud.get_user_by_email(db, user.email)
|
||||||
|
if user_exists: return
|
||||||
|
crud.create_user(db, user)
|
||||||
|
token = auth_helper.create_access_token(data={"sub": user.username}, expires_delta=timedelta(minutes=15))
|
||||||
|
res = crud.set_user_last_token(db, user.username, token)
|
||||||
|
if not res: print("Failed to add initial token")
|
||||||
|
|
||||||
|
def init_door():
|
||||||
|
iot_door = schemas.IotEntityCreate(bluetooth_mac="ff:ff:ff:ff",
|
||||||
|
description="Iot Lab Door")
|
||||||
|
door_exists = crud.get_iot_entity_by_bluetooth_mac(db, iot_door.bluetooth_mac)
|
||||||
|
if door_exists: return
|
||||||
|
crud.create_iot_entity(db, iot_door)
|
||||||
|
|
||||||
|
def init_monitor():
|
||||||
|
iot_monitor = schemas.IotEntityCreate(bluetooth_mac="ff:ff:00:ff",
|
||||||
|
description="Iot Lab Monitor")
|
||||||
|
monitor_exists = crud.get_iot_entity_by_bluetooth_mac(db, iot_monitor.bluetooth_mac)
|
||||||
|
if monitor_exists: return
|
||||||
|
crud.create_iot_entity(db, iot_monitor)
|
||||||
|
|
||||||
|
def init():
|
||||||
|
init_user()
|
||||||
|
init_door()
|
||||||
|
init_monitor()
|
||||||
|
|
@ -4,8 +4,9 @@ from fastapi.security.api_key import APIKey
|
|||||||
from fastapi.responses import PlainTextResponse
|
from fastapi.responses import PlainTextResponse
|
||||||
from sqlalchemy.orm import Session
|
from sqlalchemy.orm import Session
|
||||||
|
|
||||||
from . import crud, models, schemas, auth_helper
|
from . import crud, models, schemas, auth_helper, init_db
|
||||||
from .database import SessionLocal, engine
|
from .database import SessionLocal, engine
|
||||||
|
from .utils import get_db
|
||||||
|
|
||||||
from typing import List
|
from typing import List
|
||||||
from datetime import timedelta, datetime
|
from datetime import timedelta, datetime
|
||||||
@ -16,13 +17,10 @@ oauth = OAuth2PasswordBearer(tokenUrl="tkn")
|
|||||||
|
|
||||||
app = FastAPI(title="IoT Building System")
|
app = FastAPI(title="IoT Building System")
|
||||||
|
|
||||||
|
# Split into endpoints modules
|
||||||
|
#app.include_router(users.router,prefix="/users", tags=["User"])
|
||||||
|
init_db.init()
|
||||||
|
|
||||||
def get_db():
|
|
||||||
db = SessionLocal()
|
|
||||||
try:
|
|
||||||
yield db
|
|
||||||
finally:
|
|
||||||
db.close()
|
|
||||||
|
|
||||||
def get_current_user(token: str = Depends(oauth), db: Session = Depends(get_db)):
|
def get_current_user(token: str = Depends(oauth), db: Session = Depends(get_db)):
|
||||||
credentials_exception = HTTPException(
|
credentials_exception = HTTPException(
|
||||||
|
9
sql_app/utils.py
Normal file
9
sql_app/utils.py
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
|
||||||
|
from .database import SessionLocal
|
||||||
|
|
||||||
|
def get_db():
|
||||||
|
db = SessionLocal()
|
||||||
|
try:
|
||||||
|
yield db
|
||||||
|
finally:
|
||||||
|
db.close()
|
Loading…
Reference in New Issue
Block a user