From fe649b3e69fde59739fb66de3899a0b13ce81111 Mon Sep 17 00:00:00 2001 From: guineaaaa <165776804+guineaaaa@users.noreply.github.com> Date: Thu, 15 May 2025 10:27:41 +0900 Subject: [PATCH 1/4] =?UTF-8?q?[REFACT]=20=ED=86=A0=ED=81=B0=EC=97=90?= =?UTF-8?q?=EC=84=9C=20=EC=95=84=EC=9D=B4=EB=94=94=20=EC=B6=94=EC=B6=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/routes.py | 4 ++-- app/models/eduSchemas.py | 1 - app/services/education_service.py | 6 ++++-- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/app/api/routes.py b/app/api/routes.py index 1648ed4..542f253 100644 --- a/app/api/routes.py +++ b/app/api/routes.py @@ -195,7 +195,6 @@ def education_search( def bookmark_education( data: EducationBookmarkRequest = Body( example={ - "user_id": 1, "bookmarks": [ { "title": "교육1", @@ -211,7 +210,8 @@ def bookmark_education( db: Session = Depends(get_db), token_data=Depends(verify_jwt), ): - return save_bookmarked_education(data, db) + user_id = token_data["userId"] + return save_bookmarked_education(user_id, data, db) @router.post( diff --git a/app/models/eduSchemas.py b/app/models/eduSchemas.py index 963a0a5..0317e92 100644 --- a/app/models/eduSchemas.py +++ b/app/models/eduSchemas.py @@ -28,5 +28,4 @@ class EducationItem(BaseModel): class EducationBookmarkRequest(BaseModel): - user_id: int bookmarks: List[EducationItem] diff --git a/app/services/education_service.py b/app/services/education_service.py index 8cf5404..4c2a79b 100644 --- a/app/services/education_service.py +++ b/app/services/education_service.py @@ -50,9 +50,11 @@ def parse_education_xml(xml_data, category): return results -def save_bookmarked_education(data: EducationBookmarkRequest, db: Session): +def save_bookmarked_education( + user_id: int, data: EducationBookmarkRequest, db: Session +): for item in data.bookmarks: - edu = EducationInfoDB(user_id=data.user_id, title=item.title, url=item.url) + edu = EducationInfoDB(user_id=user_id, title=item.title, url=item.url) db.add(edu) db.commit() return {"message": "교육 정보 북마크 성공."} From fa6c36c9847856afba0d451d96bdad2a3eafe145 Mon Sep 17 00:00:00 2001 From: guineaaaa <165776804+guineaaaa@users.noreply.github.com> Date: Thu, 15 May 2025 10:32:31 +0900 Subject: [PATCH 2/4] =?UTF-8?q?[REFACT]=20=ED=86=A0=ED=81=B0=EC=97=90=20?= =?UTF-8?q?=EC=84=9C=20=EC=95=84=EC=9D=B4=EB=94=94=20=EC=B6=94=EC=B6=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/routes.py | 4 ++-- app/models/policySchemas.py | 1 - app/services/policy_service.py | 4 ++-- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/app/api/routes.py b/app/api/routes.py index 542f253..f505388 100644 --- a/app/api/routes.py +++ b/app/api/routes.py @@ -279,7 +279,6 @@ async def policy_recommend( def bookmark_policy( data: PolicySaveRequest = Body( example={ - "user_id": 1, "policies": [ { "title": "정책1", @@ -299,7 +298,8 @@ def bookmark_policy( db: Session = Depends(get_db), token_data=Depends(verify_jwt), ): - return save_policy_bookmarks(data, db) + user_id = token_data["userId"] + return save_policy_bookmarks(user_id, data, db) # 세션 생성 및 첫 번째 질문 반환 diff --git a/app/models/policySchemas.py b/app/models/policySchemas.py index 9003b26..e4b59c6 100644 --- a/app/models/policySchemas.py +++ b/app/models/policySchemas.py @@ -26,5 +26,4 @@ class PolicyItem(BaseModel): class PolicySaveRequest(BaseModel): - user_id: int policies: List[PolicyItem] diff --git a/app/services/policy_service.py b/app/services/policy_service.py index dcead7a..acdf665 100644 --- a/app/services/policy_service.py +++ b/app/services/policy_service.py @@ -169,10 +169,10 @@ def recommend_policy_by_category(category: str) -> list[dict]: return results -def save_policy_bookmarks(data: PolicySaveRequest, db: Session): +def save_policy_bookmarks(user_id: int, data: PolicySaveRequest, db: Session): for policy in data.policies: info = PolicyInfo( - user_id=data.user_id, + user_id=user_id, category=policy.category, title=policy.title, description=policy.description, From ff1a08b3d8ef6b459af65d625b84cbb897086543 Mon Sep 17 00:00:00 2001 From: guineaaaa <165776804+guineaaaa@users.noreply.github.com> Date: Thu, 15 May 2025 10:36:52 +0900 Subject: [PATCH 3/4] =?UTF-8?q?[REFACT]=20=ED=86=A0=ED=81=B0=EC=97=90=20?= =?UTF-8?q?=EC=84=9C=20=EC=95=84=EC=9D=B4=EB=94=94=20=EC=B6=94=EC=B6=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/routes.py | 4 ++-- app/models/resumeSchemas.py | 1 - app/services/policy_service.py | 2 +- app/services/resume_service.py | 4 ++-- 4 files changed, 5 insertions(+), 6 deletions(-) diff --git a/app/api/routes.py b/app/api/routes.py index f505388..1a813e2 100644 --- a/app/api/routes.py +++ b/app/api/routes.py @@ -398,7 +398,6 @@ def result(session_id: str, token_data=Depends(verify_jwt)): def save_resume( data: ResumeSaveRequest = Body( example={ - "user_id": 1, "title": "삼성전자 백엔드 개발자 지원 자기소개서", "sections": { "성장과정": "...", @@ -413,7 +412,8 @@ def save_resume( db: Session = Depends(get_db), token_data=Depends(verify_jwt), ): - saved = save_resume_to_db(db, data) + user_id = token_data["userId"] + saved = save_resume_to_db(user_id, db, data) return {"resume_id": saved.id, "message": "자기소개서가 저장되었습니다."} diff --git a/app/models/resumeSchemas.py b/app/models/resumeSchemas.py index 24bdc72..9bf4dc0 100644 --- a/app/models/resumeSchemas.py +++ b/app/models/resumeSchemas.py @@ -37,7 +37,6 @@ class Config: class ResumeSaveRequest(BaseModel): - user_id: int title: str sections: Dict[str, str] resume_category: ResumeCategory diff --git a/app/services/policy_service.py b/app/services/policy_service.py index acdf665..a79343f 100644 --- a/app/services/policy_service.py +++ b/app/services/policy_service.py @@ -169,7 +169,7 @@ def recommend_policy_by_category(category: str) -> list[dict]: return results -def save_policy_bookmarks(user_id: int, data: PolicySaveRequest, db: Session): +def save_policy_bookmarks(user_id: int,data: PolicySaveRequest, db: Session): for policy in data.policies: info = PolicyInfo( user_id=user_id, diff --git a/app/services/resume_service.py b/app/services/resume_service.py index 83c9ba3..7d5d798 100644 --- a/app/services/resume_service.py +++ b/app/services/resume_service.py @@ -139,10 +139,10 @@ def get_resume(session_id: str): } -def save_resume_to_db(db: Session, data: ResumeSaveRequest): +def save_resume_to_db(user_id: int, db: Session, data: ResumeSaveRequest): content_json_str = json.dumps(data.sections, ensure_ascii=False) resume = Resume( - user_id=data.user_id, + user_id=user_id, title=data.title, content=content_json_str, resume_category=data.resume_category, From d364312612a4ad734b83738dbc14559a057f5eba Mon Sep 17 00:00:00 2001 From: guineaaaa <165776804+guineaaaa@users.noreply.github.com> Date: Thu, 15 May 2025 10:46:00 +0900 Subject: [PATCH 4/4] =?UTF-8?q?[REFACT]=20=ED=86=A0=ED=81=B0=EC=97=90?= =?UTF-8?q?=EC=84=9C=20=EC=95=84=EC=9D=B4=EB=94=94=20=EC=B6=94=EC=B6=9C,?= =?UTF-8?q?=20=EC=9E=90=EA=B8=B0=EC=86=8C=EA=B0=9C=EC=84=9C=20=EC=A1=B0?= =?UTF-8?q?=ED=9A=8C=20=EC=97=94=EB=93=9C=ED=8F=AC=EC=9D=B8=ED=8A=B8=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/routes.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/app/api/routes.py b/app/api/routes.py index 1a813e2..dff6b9f 100644 --- a/app/api/routes.py +++ b/app/api/routes.py @@ -371,7 +371,7 @@ def result(session_id: str, token_data=Depends(verify_jwt)): "/api/resume/save", tags=["AI 자기소개서"], summary="자기소개서 저장", - description="완성된 자기소개서를 DB에 저장합니다. 저장된 content는 JSON 문자열로 저장되며, resume_category와 제목도 함께 저장됩니다.", + description="완성된 자기소개서를 DB에 저장합니다. 저장된 content는 JSON 문자열로 저장되며, resume_category(GENERAL, TECH, CAREER, ACADEMIC)와 제목도 함께 저장됩니다.", response_description="저장 결과 메시지 및 생성된 resume_id", responses={ 200: { @@ -418,11 +418,11 @@ def save_resume( @router.get( - "/api/resume/user/{userId}", + "/api/resume/user", tags=["AI 자기소개서"], response_model=list[ResumeResult], summary="사용자의 자기소개서 목록 조회", - description="특정 user_id에 해당하는 사용자가 저장한 자기소개서 리스트를 조회합니다. 각 자기소개서는 title과 sections(JSON 파싱된 dict 형태)로 반환됩니다.", + description="accessToken 기반 사용자 인증을 통해 사용자가 저장한 자기소개서 리스트를 조회합니다. 각 자기소개서는 title과 sections(JSON 파싱된 dict 형태)로 반환됩니다.", response_description="자기소개서 목록", responses={ 200: { @@ -438,6 +438,8 @@ def save_resume( "입사포부": "...", "강점약점": "...", "프로젝트경험": "...", + "created_at": "2025-05-01T12:00:00", + "updated_at": "2025-05-01T13:00:00", }, } ] @@ -455,9 +457,11 @@ def save_resume( }, ) def get_user_resumes( - userId: int, db: Session = Depends(get_db), token_data=Depends(verify_jwt) + db: Session = Depends(get_db), + token_data=Depends(verify_jwt), ): - return get_resumes_by_user_id(db, userId) + user_id = token_data["userId"] + return get_resumes_by_user_id(db, user_id) @router.get("/ping")