Skip to content

Commit 581dc91

Browse files
committed
fix: 분석 실패 시 세션 상태가 IN_PROGRESS로 고착되는 문제 수정(#52)
1 parent 3066e44 commit 581dc91

3 files changed

Lines changed: 12 additions & 4 deletions

File tree

src/main/java/io/wisoft/prepair/prepair_api/entity/InterviewSession.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,4 +46,8 @@ public void complete(int finalScore, String finalFeedback) {
4646
this.finalFeedback = finalFeedback;
4747
this.status = SessionStatus.COMPLETED;
4848
}
49+
50+
public void fail() {
51+
this.status = SessionStatus.FAILED;
52+
}
4953
}

src/main/java/io/wisoft/prepair/prepair_api/entity/enums/SessionStatus.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,6 @@
22

33
public enum SessionStatus {
44
IN_PROGRESS,
5-
COMPLETED
5+
COMPLETED,
6+
FAILED
67
}

src/main/java/io/wisoft/prepair/prepair_api/service/answer/event/AllAnalysisCompletedHandler.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -183,9 +183,12 @@ private void deleteTempFile(Path videoPath) {
183183
private void sendFailureToSession(UUID answerId, String message) {
184184
InterviewAnswer answer = answerRepository.findByIdWithQuestionAndSession(answerId).orElse(null);
185185
if (answer != null && answer.getInterviewQuestion().getInterviewSession() != null) {
186-
UUID sessionId = answer.getInterviewQuestion().getInterviewSession().getId();
187-
sseEmitterManager.send(sessionId, "analysis-failed", Map.of("message", message));
188-
sseEmitterManager.complete(sessionId);
186+
InterviewSession session = answer.getInterviewQuestion().getInterviewSession();
187+
session.fail();
188+
sessionRepository.save(session);
189+
190+
sseEmitterManager.send(session.getId(), "analysis-failed", Map.of("message", message));
191+
sseEmitterManager.complete(session.getId());
189192
}
190193
}
191194
}

0 commit comments

Comments
 (0)