from fastapi import APIRouter, HTTPException, Body, Response from app.models.user import UserCreate, UserLogin from app.models.request import ValidateRequest from app.services.auth import AuthService router = APIRouter( tags=["Users"] ) @router.post("/auth/register") async def register(user: UserCreate): """Регистрация нового пользователя""" return await AuthService().register(user) @router.post("/auth/authenticate") async def authenticate(credentials: UserLogin): """Аутентификация пользователя""" return await AuthService().login(credentials) @router.post("/auth/validate") async def validate_token(request: ValidateRequest): is_valid = await AuthService().validate(request.accessToken, request.clientToken) return {"valid": is_valid} @router.post("/auth/refresh") async def refresh_token(access_token: str, client_token: str): result = await AuthService().refresh(access_token, client_token) if not result: raise HTTPException(status_code=401, detail="Invalid tokens") return result @router.get("/sessionserver/session/minecraft/profile/{uuid}") async def get_minecraft_profile(uuid: str, unsigned: bool = False): return await AuthService().get_minecraft_profile(uuid) @router.post("/sessionserver/session/minecraft/join") async def join_server(request_data: dict = Body(...)): try: await AuthService().join_server(request_data) return Response(status_code=204) except Exception as e: print("Error in join_server:", str(e)) raise @router.get("/sessionserver/session/minecraft/hasJoined") async def has_joined(username: str, serverId: str): return await AuthService().has_joined(username, serverId)