Last commit not found
from fastapi import APIRouter, Request, Depends, HTTPException | |
from .Schemas import BaseRequest, UserSchema | |
from pydantic import BaseModel | |
from .Model import User | |
from sqlalchemy import and_ | |
from fastapi_jwt_auth import AuthJWT | |
class Settings(BaseModel): | |
authjwt_secret_key: str = "secret" | |
authjwt_access_token_expires: bool = False | |
user_router = APIRouter(tags=["User"]) | |
def get_config(): | |
return Settings() | |
async def register_user(user: BaseRequest): | |
data = await User.objects.filter(email=user.email).first() | |
if data != None: | |
return {"code": 400, "message": "user exists", "payload": None} | |
else: | |
user.hash_password() | |
sample = await User.objects.create(**user.dict()) | |
return {"code": 200, "message": "success", "payload": None} | |
async def get_token_owner(Authorize: AuthJWT = Depends()): | |
Authorize.jwt_required() | |
current_user = Authorize.get_jwt_subject() | |
user = await User.objects.filter(id=int(current_user)).first() | |
if not user: | |
raise HTTPException(status_code=401, detail="Invalid Credentials") | |
return UserSchema.from_orm(user) | |
async def register_user(user: BaseRequest, Authorize: AuthJWT = Depends()): | |
db_user = await User.objects.filter(email=user.email).first() | |
if not db_user: | |
raise HTTPException(status_code=401, detail="Invalid Credentials") | |
if not db_user.verify_password(user.password): | |
raise HTTPException(status_code=401, detail="Invalid Credentials") | |
user = UserSchema.from_orm(db_user) | |
access_token = Authorize.create_access_token(subject=user.id) | |
return { | |
"code": 200, | |
"message": "success", | |
"payload": db_user.__dict__, | |
"access_token": access_token, | |
} | |