diff --git a/src/modules/portfolio-correction/application/dtos/company-insight.dto.ts b/src/modules/portfolio-correction/application/dtos/company-insight.dto.ts index a9a477a..2e2b54a 100644 --- a/src/modules/portfolio-correction/application/dtos/company-insight.dto.ts +++ b/src/modules/portfolio-correction/application/dtos/company-insight.dto.ts @@ -5,6 +5,7 @@ import { COMPANY_INSIGHT_MAX_LENGTH, PortfolioCorrection, } from '../../domain/portfolio-correction.entity'; +import { CorrectionStatus } from '../../domain/enums/correction-status.enum'; export class UpdateCompanyInsightReqDTO { @Transform(({ value }: { value: string }) => value?.trim()) @@ -26,6 +27,9 @@ export class UpdateCompanyInsightResDTO { @ApiProperty({ nullable: true }) id: number; + @ApiProperty({ enum: CorrectionStatus }) + status: CorrectionStatus; + @ApiProperty({ nullable: true, maxLength: COMPANY_INSIGHT_MAX_LENGTH }) companyInsight: string | null; @@ -35,6 +39,7 @@ export class UpdateCompanyInsightResDTO { static from(correction: PortfolioCorrection): UpdateCompanyInsightResDTO { const dto = new UpdateCompanyInsightResDTO(); dto.id = correction.id; + dto.status = correction.status; dto.companyInsight = correction.companyInsight; dto.highlightPoint = correction.highlightPoint; return dto; diff --git a/src/modules/portfolio-correction/application/services/portfolio-correction.service.spec.ts b/src/modules/portfolio-correction/application/services/portfolio-correction.service.spec.ts index dab11dc..a0bbf34 100644 --- a/src/modules/portfolio-correction/application/services/portfolio-correction.service.spec.ts +++ b/src/modules/portfolio-correction/application/services/portfolio-correction.service.spec.ts @@ -1,5 +1,4 @@ import { BusinessException } from 'src/common/exceptions/business.exception'; -import { ErrorCode } from 'src/common/exceptions/error-code.enum'; import { AiRelayPort, AiRelayJsonResponse } from 'src/common/ports/ai-relay.port'; import { PortfolioCorrectionFacade } from '../facades/portfolio-correction.facade'; import { PortfolioCorrectionService } from './portfolio-correction.service'; @@ -112,18 +111,15 @@ describe('PortfolioCorrectionService', () => { ); }); - it('throws COMPANY_INSIGHT_NOT_READY when company insight is still null', async () => { + it('returns company insight response with status when company insight is still null', async () => { repository.findByIdAndUserId.mockResolvedValue(createCorrection({ companyInsight: null })); - try { - await service.getCompanyInsight(1, 7); - fail('Expected getCompanyInsight to throw'); - } catch (error: unknown) { - expect(error).toBeInstanceOf(BusinessException); - expect(error).toMatchObject({ - response: { errorCode: ErrorCode.COMPANY_INSIGHT_NOT_READY }, - }); - } + await expect(service.getCompanyInsight(1, 7)).resolves.toMatchObject({ + id: 1, + status: CorrectionStatus.NOT_STARTED, + companyInsight: null, + highlightPoint: null, + }); }); it('moves status to DOING_RAG before company insight generation starts', async () => { diff --git a/src/modules/portfolio-correction/application/services/portfolio-correction.service.ts b/src/modules/portfolio-correction/application/services/portfolio-correction.service.ts index a89f909..7aa88fd 100644 --- a/src/modules/portfolio-correction/application/services/portfolio-correction.service.ts +++ b/src/modules/portfolio-correction/application/services/portfolio-correction.service.ts @@ -108,11 +108,6 @@ export class PortfolioCorrectionService { userId: number ): Promise { const correction = await this.findByIdAndUserIdOrThrow(correctionId, userId); - - if (correction.companyInsight === null) { - throw new BusinessException(ErrorCode.COMPANY_INSIGHT_NOT_READY); - } - return UpdateCompanyInsightResDTO.from(correction); } diff --git a/src/modules/portfolio-correction/presentation/portfolio-correction.controller.ts b/src/modules/portfolio-correction/presentation/portfolio-correction.controller.ts index fc87c5f..8a6d902 100644 --- a/src/modules/portfolio-correction/presentation/portfolio-correction.controller.ts +++ b/src/modules/portfolio-correction/presentation/portfolio-correction.controller.ts @@ -128,11 +128,7 @@ export class PortfolioCorrectionController { description: '특정 AI 첨삭의 기업 분석 정보를 조회합니다.', }) @ApiCommonResponse(UpdateCompanyInsightResDTO) - @ApiCommonErrorResponse( - ErrorCode.UNAUTHORIZED, - ErrorCode.CORRECTION_NOT_FOUND, - ErrorCode.COMPANY_INSIGHT_NOT_READY - ) + @ApiCommonErrorResponse(ErrorCode.UNAUTHORIZED, ErrorCode.CORRECTION_NOT_FOUND) async getCompanyInsight( @User('sub') userId: number, @Param('correctionId', ParseIntPipe) correctionId: number