from .models import ItemCreate, UserProfileBase, UserProfileID, UserProfilePrivate, UserProfilePublic, add_Item_user, all_users, is_user_exsist from fastapi import APIRouter, Depends from sqlalchemy.orm import Session from ..config import get_session_db from typing import Annotated from ..auth.models import get_current_active_user router = APIRouter( prefix="/items", tags=["items"], responses={404: {"description": "Not found"}}, dependencies=[], ) @router.get('/all_profiles') async def get_user_profile(session: Annotated[Session, Depends(get_session_db)]) -> list[UserProfilePublic]: return all_users(session=session) @router.get('/profile/{username}') async def get_user_profile_by_username( username: str, session: Annotated[Session, Depends(get_session_db)], ) -> UserProfilePublic | dict: user : UserProfilePublic = is_user_exsist(username, session) if user is None: return {"error": "User not found"} return user @router.get('/profile/me') async def get_user_profile_me( current_user: Annotated[UserProfilePrivate, Depends(get_current_active_user)] #dependtek kaynaklı UserPublic doner ) -> UserProfilePrivate: return current_user @router.post('/create') async def create_user_profile( user : Annotated[UserProfileID, Depends(get_current_active_user)], session: Annotated[Session, Depends(get_session_db)], item : Annotated[ItemCreate , None] = None ) -> dict: if add_Item_user(user, session, item) : return {"message": "User item created successfully"} return {"error": "User item creation failed"}