mayureshagashe2105's picture
Add email verification on singup
5cd9bab
raw
history blame
2.88 kB
from fastapi import Request, Depends, UploadFile, BackgroundTasks
from fastapi.middleware.cors import CORSMiddleware
from backend import app
from backend.utils import DBConnection
from backend.models import *
from backend.services.auth import *
app.add_middleware(
CORSMiddleware,
allow_origins=["*"],
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
@app.get("/", tags=["Home"])
def api_home():
return {'detail': 'Welcome to Techdocs API'}
@app.get("/api/response_check", tags=["Resource Server"])
def api_response_check():
response_result = GeneralResponse.get_instance(data={},
status="not_allowed",
message=["Not authenticated"]
)
try:
db_msg = ""
if DBConnection.is_connected():
db_msg = "Connection Successful to db!"
else:
db_msg = "Connection failed to db"
response_result.message.append(db_msg)
except Exception as e:
pass
return response_result
@app.post("/auth/signup", summary="Creates new user account", response_model=GeneralResponse, tags=["Auth Server"])
async def signup(bgtasks : BackgroundTasks, response: UserAuth):
response_result = GeneralResponse.get_instance(data={},
status="not_allowed",
message=["Not authenticated"]
)
await ops_signup(bgtasks, response_result, response)
return response_result
@app.post("/auth/login", summary="Logs in user", response_model=TokenSchema, tags=["Auth Server"])
async def login(response:LoginCreds):
return ops_login(response)
@app.put("/auth/regenerate_api_key",summary="Forget Password",response_model=APIKey,tags=["Auth Server"],dependencies=[Depends(JWTBearer())])
async def regenerate_api_key(access_token: str = Depends(JWTBearer())):
user_sub=Auth.get_user_credentials(access_token)
return ops_regenerate_api_key(user_sub)
@app.post("/api/inference", summary="Inference", response_model=Inference, tags=["Resource Server"], dependencies=[Depends(JWTBearer())])
async def inference(generate: Generate, access_token:str=Depends(JWTBearer())):
user_sub=Auth.get_user_credentials(access_token)
return ops_inference(generate.code_block,generate.api_key,user_sub)
@app.get("/auth/verify/{token}", summary="Verify Email", response_model=GeneralResponse, tags=["Auth Server"])
async def verify_email(request: Request, token:str):
response_result = GeneralResponse.get_instance(data={},
status="not_allowed",
message=["Not authenticated"]
)
return ops_verify_email(request, response_result,token)