first commit
This commit is contained in:
commit
438535fe98
29 files changed
+927
No files matched your search
@@ -0,0 +1,67 @@
|
||||
from fastapi import (
|
||||
FastAPI,
|
||||
Depends,
|
||||
HTTPException,
|
||||
status,
|
||||
Request,
|
||||
Response,
|
||||
APIRouter,
|
||||
)
|
||||
from fastapi.security import OAuth2PasswordBearer, OAuth2PasswordRequestForm
|
||||
from jose import JWTError, jwt
|
||||
from fastapi.security import OAuth2PasswordBearer
|
||||
from sqlalchemy.orm import Session
|
||||
from typing import List
|
||||
|
||||
from app import models
|
||||
from app import schemas
|
||||
from app import database
|
||||
from app import crud
|
||||
from app.utils import encrypt
|
||||
from app.utils import depes
|
||||
|
||||
|
||||
router = APIRouter()
|
||||
|
||||
|
||||
def get_db(request: Request):
|
||||
return request.state.db
|
||||
|
||||
|
||||
@router.post("/user/create/", response_model=schemas.User)
|
||||
async def create_user(user: schemas.UserCreate, db: Session = Depends(get_db)):
|
||||
db_user = crud.crud_user.get_user(db, username=user.username)
|
||||
if db_user:
|
||||
raise HTTPException(
|
||||
status_code=status.HTTP_500_INTERNAL_SERVER_ERROR,
|
||||
detail="Username already registered",
|
||||
)
|
||||
return crud.crud_user.create_user(db=db, user=user)
|
||||
|
||||
|
||||
@router.post("/auth/token", response_model=schemas.Token)
|
||||
async def create_token(
|
||||
form: OAuth2PasswordRequestForm = Depends(), db: Session = Depends(get_db)
|
||||
):
|
||||
user = crud.crud_user.authenticate_user(
|
||||
db, username=form.username, password=form.password
|
||||
)
|
||||
|
||||
if not user:
|
||||
raise HTTPException(
|
||||
status_code=status.HTTP_401_UNAUTHORIZED,
|
||||
detail="Incorrect username or password",
|
||||
)
|
||||
|
||||
access_token = encrypt.create_token(data={"username": user.username})
|
||||
|
||||
return {
|
||||
"access_token": access_token,
|
||||
"token_type": "bearer",
|
||||
}
|
||||
|
||||
|
||||
@router.get("/user/", response_model=List[schemas.User])
|
||||
def get_users(db: Session = Depends(get_db), token = Depends(depes.get_current_user)):
|
||||
return crud.crud_user.get_users(db)
|
||||
|
||||
Reference in new issue
Block a user