34 lines
990 B
Python
34 lines
990 B
Python
from fastapi import APIRouter, Depends
|
|
from fastapi.security import OAuth2PasswordBearer
|
|
from sqlalchemy.orm import Session
|
|
|
|
from app.external_services import send_otp
|
|
from app.schemas import *
|
|
from database.crud import get_db, insert_data, verify_otp
|
|
|
|
router = APIRouter()
|
|
|
|
oauth2_scheme = OAuth2PasswordBearer(tokenUrl="token")
|
|
|
|
|
|
# FIXME Password hash
|
|
@router.post("/register", response_model=UserCreateResponse)
|
|
def create_user(data: UserCreate, db: Session = Depends(get_db)):
|
|
user = insert_data(model="Users", data=data, db=db)
|
|
send_otp(data=user, db=db)
|
|
return user
|
|
|
|
|
|
# TODO Use OAuth2 for verification
|
|
@router.post("/login", response_model=UserLoginResponse)
|
|
def log_in(
|
|
data: UserLogin, db: Session = Depends(get_db), token: str = Depends(oauth2_scheme),
|
|
):
|
|
pass
|
|
|
|
|
|
@router.post("/otpVerification", response_model=OTPVerifyResponse)
|
|
def validate_otp(data: OTPVerify, db: Session = Depends(get_db)):
|
|
response = verify_otp(data=data, db=db)
|
|
return response
|