odapi/app/routes.py

39 lines
1.1 KiB
Python
Raw Normal View History

2020-09-28 18:19:59 +02:00
from fastapi import APIRouter, Depends
from fastapi.security import OAuth2PasswordBearer
from sqlalchemy.orm import Session
2020-09-28 18:46:44 +02:00
from app.external_services import resend_otp, send_otp
from app.schemas import *
2020-09-30 11:27:48 +02:00
from database.crud import add_user, get_db, verify_otp
2020-03-23 21:17:16 +01:00
2020-09-03 18:31:52 +02:00
router = APIRouter()
2020-03-23 21:17:16 +01:00
2020-09-28 18:19:59 +02:00
oauth2_scheme = OAuth2PasswordBearer(tokenUrl="token")
2020-09-03 18:31:52 +02:00
2020-09-28 18:19:59 +02:00
@router.post("/register", response_model=UserCreateResponse)
def create_user(data: UserCreate, db: Session = Depends(get_db)):
2020-09-30 11:27:48 +02:00
user = add_user(data=data, db=db)
send_otp(data=user, db=db)
return user
2020-04-19 21:30:41 +02:00
2020-09-28 18:19:59 +02:00
# TODO Use OAuth2 for verification
@router.post("/login", response_model=UserLoginResponse)
2020-09-28 18:19:59 +02:00
def log_in(
data: UserLogin, db: Session = Depends(get_db), token: str = Depends(oauth2_scheme),
):
pass
@router.post("/otpVerification", response_model=OTPVerifyResponse)
2020-09-28 18:19:59 +02:00
def validate_otp(data: OTPVerify, db: Session = Depends(get_db)):
response = verify_otp(data=data, db=db)
return response
2020-09-28 18:46:44 +02:00
@router.post("/resendOTP", response_model=OTPresendResponse)
def deliver_otp(data: OTPresend, db: Session = Depends(get_db)):
response = resend_otp(data=data, db=db)
return response