From c8d38e4e0034c51f5895ba63c4a96052bbd136ef Mon Sep 17 00:00:00 2001 From: Coldot <41678750+Coldot@users.noreply.github.com> Date: Sun, 23 Mar 2025 02:33:17 +0900 Subject: [PATCH 1/3] =?UTF-8?q?Feat:=20=EC=82=AC=EC=9A=A9=EC=9E=90=20ID?= =?UTF-8?q?=EB=A1=9C=20=EB=AC=B8=EC=84=9C=20=EB=AA=A9=EB=A1=9D=20=EC=A1=B0?= =?UTF-8?q?=ED=9A=8C=20=EA=B8=B0=EB=8A=A5=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../repository/document_repository.py | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/src/main/document/repository/document_repository.py b/src/main/document/repository/document_repository.py index 80c3b8c..d456790 100644 --- a/src/main/document/repository/document_repository.py +++ b/src/main/document/repository/document_repository.py @@ -2,6 +2,7 @@ from src.main.document.dto.document import saveDocument, documentDetailDto from datetime import datetime from bson import ObjectId +from typing import List ##db에 문서 저장하기 def save_document(document : saveDocument) -> str: @@ -38,6 +39,35 @@ def get_document(document_id: str) -> documentDetailDto: return doc +# 사용자 ID로 문서 목록 조회하기 +def get_documents_by_user(user_id: str) -> List[documentDetailDto]: + client = get_mongo_client() + db = client['xrpedia-data'] + document_collection = db['document_collection'] + + # 사용자 ID로 문서 필터링 + documents = document_collection.find({"uploader_id": user_id}) + + result = [] + for doc in documents: + document = documentDetailDto( + document_id=str(doc["_id"]), + file_id=doc["file_id"], + document_name=doc["document_name"], + document_image_url=doc["document_image_url"], + introduction=doc["introduction"], + downloads=doc["downloads"], + pageNumber=doc["pageNumber"], + upload_date=doc["upload_date"], + uploader=doc["uploader_id"], + price=doc["price"], + category=doc["category"], + rating=doc["rating"] + ) + result.append(document) + + return result + # def get_user_name(user_id: str): # client = get_mongo_client() # db = client['xrpedia-data'] From c864c7156ce3e23ef266fe52cddb02e28b98baec Mon Sep 17 00:00:00 2001 From: Coldot <41678750+Coldot@users.noreply.github.com> Date: Sun, 23 Mar 2025 02:33:22 +0900 Subject: [PATCH 2/3] =?UTF-8?q?Feat:=20=EC=82=AC=EC=9A=A9=EC=9E=90=20ID?= =?UTF-8?q?=EB=A1=9C=20=EB=AC=B8=EC=84=9C=20=EB=AA=A9=EB=A1=9D=20=EC=A1=B0?= =?UTF-8?q?=ED=9A=8C=20=EA=B8=B0=EB=8A=A5=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/document/service/document_service.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/main/document/service/document_service.py b/src/main/document/service/document_service.py index ff09646..408eea2 100644 --- a/src/main/document/service/document_service.py +++ b/src/main/document/service/document_service.py @@ -2,7 +2,7 @@ #2. 이를 db에 저장한다. #3. client에게 보낸다. -from src.main.document.repository.document_repository import save_document, get_document +from src.main.document.repository.document_repository import save_document, get_document, get_documents_by_user from src.main.document.dto.document import saveDocument, documentRequestDto from datetime import datetime import asyncio @@ -33,4 +33,8 @@ async def save_document_service(request: documentRequestDto, user_id: str) : # 조회하기 async def get_document_detail(document_id: str): - return get_document(document_id) \ No newline at end of file + return get_document(document_id) + +# 사용자의 모든 문서 목록 조회 +async def get_documents(user_id: str): + return get_documents_by_user(user_id) \ No newline at end of file From cd1f05813ef0c927d2abf8846b422a91cfdbe457 Mon Sep 17 00:00:00 2001 From: Coldot <41678750+Coldot@users.noreply.github.com> Date: Sun, 23 Mar 2025 02:33:27 +0900 Subject: [PATCH 3/3] =?UTF-8?q?Feat:=20=EB=AC=B8=EC=84=9C=20=EB=AA=A9?= =?UTF-8?q?=EB=A1=9D=20=EC=A1=B0=ED=9A=8C=20API=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/document/controller/DocumentAPIRouter.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/main/document/controller/DocumentAPIRouter.py b/src/main/document/controller/DocumentAPIRouter.py index 578f34a..60e1a70 100644 --- a/src/main/document/controller/DocumentAPIRouter.py +++ b/src/main/document/controller/DocumentAPIRouter.py @@ -3,14 +3,21 @@ from sqlalchemy.orm import Session from src.auth.dependencies import get_current_user -from src.main.document.service.document_service import save_document_service, get_document_detail +from src.main.document.service.document_service import save_document_service, get_document_detail, get_documents from src.main.document.dto.document import documentRequestDto,documentDetailDto - +from typing import List router = APIRouter( prefix="/documents", tags=["문서 업로드"] ) +@router.get("", response_model=List[documentDetailDto]) +async def getDocuments(user_id: uuid.UUID = Depends(get_current_user)): + try: + return await get_documents(str(user_id)) + except Exception as e: + raise HTTPException(status_code=500, detail=f"문서 목록 조회 중 문제 발생: {str(e)}") + @router.post("") async def uploadDocument(request: documentRequestDto, user_id: uuid.UUID = Depends(get_current_user)): try: