mirror of
https://github.com/jaypyles/Scraperr.git
synced 2025-12-18 13:45:35 +00:00
Feat/swap to sqlalchemy (#99)
* chore: wip swap to sqlalchemy * feat: swap to sqlalchemy * feat: swap to sqlalchemy * feat: swap to sqlalchemy * feat: swap to sqlalchemy
This commit is contained in:
@@ -6,9 +6,11 @@ from datetime import timedelta
|
||||
# PDM
|
||||
from fastapi import Depends, APIRouter, HTTPException, status
|
||||
from fastapi.security import OAuth2PasswordRequestForm
|
||||
from sqlalchemy.ext.asyncio import AsyncSession
|
||||
|
||||
# LOCAL
|
||||
from api.backend.auth.schemas import User, Token, UserCreate
|
||||
from api.backend.database.base import AsyncSessionLocal, get_db
|
||||
from api.backend.auth.auth_utils import (
|
||||
ACCESS_TOKEN_EXPIRE_MINUTES,
|
||||
get_current_user,
|
||||
@@ -16,7 +18,7 @@ from api.backend.auth.auth_utils import (
|
||||
get_password_hash,
|
||||
create_access_token,
|
||||
)
|
||||
from api.backend.database.common import update
|
||||
from api.backend.database.models import User as DatabaseUser
|
||||
from api.backend.routers.handle_exceptions import handle_exceptions
|
||||
|
||||
auth_router = APIRouter()
|
||||
@@ -26,8 +28,8 @@ LOG = logging.getLogger("Auth")
|
||||
|
||||
@auth_router.post("/auth/token", response_model=Token)
|
||||
@handle_exceptions(logger=LOG)
|
||||
async def login_for_access_token(form_data: OAuth2PasswordRequestForm = Depends()):
|
||||
user = await authenticate_user(form_data.username, form_data.password)
|
||||
async def login_for_access_token(form_data: OAuth2PasswordRequestForm = Depends(), db: AsyncSession = Depends(get_db)):
|
||||
user = await authenticate_user(form_data.username, form_data.password, db)
|
||||
|
||||
if not user:
|
||||
raise HTTPException(
|
||||
@@ -56,8 +58,15 @@ async def create_user(user: UserCreate):
|
||||
user_dict["hashed_password"] = hashed_password
|
||||
del user_dict["password"]
|
||||
|
||||
query = "INSERT INTO users (email, hashed_password, full_name) VALUES (?, ?, ?)"
|
||||
_ = update(query, (user_dict["email"], hashed_password, user_dict["full_name"]))
|
||||
async with AsyncSessionLocal() as session:
|
||||
new_user = DatabaseUser(
|
||||
email=user.email,
|
||||
hashed_password=user_dict["hashed_password"],
|
||||
full_name=user.full_name,
|
||||
)
|
||||
|
||||
session.add(new_user)
|
||||
await session.commit()
|
||||
|
||||
return user_dict
|
||||
|
||||
|
||||
Reference in New Issue
Block a user