from fastapi import HTTPException from datetime import datetime, timedelta from src.utils import JWTUtil, BcryptUtil from src.schemas import ( UserSignInSchema, SessionCreateSchema, ) from ._user_service import UserService from ._session_service import SessionService class AuthService: def __init__(self): self._jwt_util = JWTUtil() self._user_service = UserService() self._session_service = SessionService() async def sign_in(self, user: UserSignInSchema): existing_user = await self._user_service.list_users( filter_by={"email": user.email} ) if not existing_user: user_object = await self._user_service.create_user( UserSignInSchema(name=user.name, email=user.email) ) return { "user_id": str(user_object.id), } return { "user_id": str(existing_user[0].id), }