from fastapi import APIRouter, Depends from app.shared.decorator.response_wrapper import response_wrapper from app.presentation.schemas.useritems_schema import GetItemsRequest,UpdateItemRequest,DeleteUserItemRequest from app.presentation.schemas.uservideo_schema import GetVideosRequest,DeleteVideoRequest from app.presentation.schemas.userprofile_schema import GetUserProfileRequest, PutUserProfileRequest from app.services.user_service import UserService from app.services.video_service import VideoService from app.dependencies import get_user_service, get_video_service router = APIRouter(prefix="/user", tags=["user"]) @router.post("/items") @response_wrapper async def get_items( request: GetItemsRequest, user_service: UserService = Depends(get_user_service) ): return user_service.get_items(request) @router.put("/item/update") @response_wrapper async def update_items( request: UpdateItemRequest, user_service: UserService = Depends(get_user_service) ): return user_service.update_item(request) @router.delete("/item/delete") @response_wrapper async def delete_items( request: DeleteUserItemRequest, user_service: UserService = Depends(get_user_service) ): return user_service.delete_item(request) @router.post("/videos") @response_wrapper async def get_videos( request: GetVideosRequest, video_service: VideoService = Depends(get_video_service) ): return video_service.get_all_by_user_id(request) @router.delete("/video/delete") @response_wrapper async def delete_video( request: DeleteVideoRequest, video_service: VideoService = Depends(get_video_service) ): return video_service.delete_by_video_id(request) @router.post("/profile") @response_wrapper async def get_profile( request: GetUserProfileRequest, user_service: UserService = Depends(get_user_service) ): return user_service.get_user_profile(request) @router.put("/profile/update") @response_wrapper async def update_profile( request: PutUserProfileRequest, user_service: UserService = Depends(get_user_service) ): return user_service.update_user_profile(request)