[main.py] move settings stuff into its own import
also correct imports to use app namespace
This commit is contained in:
@@ -8,13 +8,10 @@ from sqlmodel import Session, select
|
||||
from pwdlib import PasswordHash
|
||||
import jwt
|
||||
from jwt.exceptions import InvalidTokenError
|
||||
from ..model.models import UserDB, Token, TokenData, UserCreate
|
||||
from ..services.database import *
|
||||
from app.model.models import UserDB, Token, TokenData, UserCreate
|
||||
from app.services.database import *
|
||||
import secrets, string, os
|
||||
|
||||
from dotenv import load_dotenv
|
||||
|
||||
load_dotenv()
|
||||
SECRET_KEY = os.getenv("SECRET_KEY", default="ff"*16)
|
||||
ALGORITHM = "HS256"
|
||||
ACCESS_TOKEN_EXPIRE_MINUTES = 120
|
||||
|
||||
@@ -1,17 +1,25 @@
|
||||
import logging
|
||||
logger = logging.getLogger(__name__)
|
||||
from os import getenv, path
|
||||
from sqlmodel import create_engine, SQLModel, Session
|
||||
|
||||
from ..model.models import Base
|
||||
from app.model.models import Base
|
||||
|
||||
SQLALCHEMY_DATABASE_URL = "sqlite:///./gatekeeper.db"
|
||||
SQLALCHEMY_DATABASE_URL = getenv("SQLALCHEMY_DATABASE_URL", "sqlite:///./gatekeeper.db")
|
||||
|
||||
engine = create_engine(SQLALCHEMY_DATABASE_URL)
|
||||
|
||||
def create_db_and_tables():
|
||||
SQLModel.metadata.create_all(engine)
|
||||
from alembic.config import Config
|
||||
from alembic import command
|
||||
alembic_cfg = Config("./alembic.ini")
|
||||
command.stamp(alembic_cfg, "head")
|
||||
if not path.exists(SQLALCHEMY_DATABASE_URL):
|
||||
SQLModel.metadata.create_all(engine)
|
||||
from alembic.config import Config
|
||||
from alembic import command
|
||||
alembic_cfg = Config("./alembic.ini")
|
||||
command.stamp(alembic_cfg, "head")
|
||||
logger.info("Database created and tables initialized.")
|
||||
else:
|
||||
logger.info("Database already exists")
|
||||
|
||||
|
||||
def get_session():
|
||||
with Session(engine) as db:
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
import os
|
||||
import logging
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
def verify_settings():
|
||||
card_envs = [
|
||||
"MIFARE_APP_MASTER_KEY",
|
||||
"MIFARE_ACL_READ_BASE_KEY",
|
||||
"MIFARE_ACL_WRITE_BASE_KEY",
|
||||
]
|
||||
important_envs = [
|
||||
"SECRET_KEY"
|
||||
]
|
||||
other_envs = [
|
||||
"SQLALCHEMY_DATABASE_URL"
|
||||
]
|
||||
for setting in card_envs:
|
||||
if (setting not in os.environ or setting == "") and not os.getenv("DISABLE_CARDS"):
|
||||
raise ValueError(f"Missing environment variable for scanner start: {setting} \n Run with DISABLE_CARDS env var to disable cards")
|
||||
for setting in important_envs:
|
||||
if setting not in os.environ or setting == "":
|
||||
raise ValueError(f'Missing critical environment variable {setting}. Stopping...')
|
||||
for setting in other_envs:
|
||||
if setting not in os.environ:
|
||||
logger.critical(f'Env var {setting} not set. Continuing with defaults.')
|
||||
|
||||
Reference in New Issue
Block a user