This commit is contained in:
ITQ
2025-11-22 11:57:10 +03:00
parent 2dd6e53bf8
commit 579f784fbd
10 changed files with 158 additions and 42 deletions
@@ -65,6 +65,7 @@ class GetResumeInteractor:
@to_data_structure
class ResumeListItemResponse:
id: ResumeId
position: str
about_me: str
key_skills: list[str]
@@ -79,10 +80,11 @@ class GetResumeListInteractor:
async def execute(self, limit: int, offset: int) -> list[ResumeListItemResponse]:
user = await self.identity_provider.get_current_user()
resumes = await self.resume_data_gateway.list_by_user_id(user.id, limit=limit, offset=offset)
resumes = await self.resume_data_gateway.list_latest_by_user_id(user.id, limit=limit, offset=offset)
return [
ResumeListItemResponse(
id=r.id,
position=r.position,
about_me=r.about_me,
key_skills=r.key_skills,
@@ -90,3 +92,29 @@ class GetResumeListInteractor:
)
for r in resumes
]
@to_interactor
class GetResumeHistoryInteractor:
identity_provider: IdentityProvider
resume_data_gateway: ResumeDataGateway
async def execute(self, resume_id: ResumeId) -> list[ResumeListItemResponse]:
user = await self.identity_provider.get_current_user()
resume = await self.resume_data_gateway.load(resume_id)
if resume.user_id != user.id:
raise ResumeDoesBelongUserError
history = await self.resume_data_gateway.get_history(resume_id)
return [
ResumeListItemResponse(
id=r.id,
position=r.position,
about_me=r.about_me,
key_skills=r.key_skills,
experience_type=r.experience_type,
)
for r in history
]