from fastapi import APIRouter,Depends from fastapi.responses import JSONResponse from fastapi import HTTPException from db_setup import get_session from sqlalchemy.ext.asyncio import AsyncSession from pydantic import BaseModel, EmailStr from notifications.views import Confirmation from dotenv import load_dotenv load_dotenv() router = APIRouter() class ConfirmEmailRequest(BaseModel): token: str class ConfirmEmailResend(BaseModel): email: EmailStr @router.post("/users/confirm-email") async def confirm_email(payload: ConfirmEmailRequest,session: AsyncSession = Depends(get_session)): try: service=Confirmation(session=session) data=await service.confirm(payload.token) return JSONResponse(content={"data":data,"status_code":200}) except HTTPException: raise except Exception as e: raise HTTPException(status_code=500,detail=str(e)) @router.post("/users/confirm-email/resend") async def resend_confirm_email(payload: ConfirmEmailResend,session: AsyncSession = Depends(get_session)): try: service=Confirmation(session=session) data=await service.resend(payload.email) return JSONResponse(content={"data":data,"status_code":200}) except HTTPException: raise except Exception as e: raise HTTPException(status_code=500,detail=str(e))