diff --git a/src/main/java/inha/gdgoc/domain/manito/controller/ManitoVerifyController.java b/src/main/java/inha/gdgoc/domain/manito/controller/ManitoVerifyController.java index d31e36a..a7b9137 100644 --- a/src/main/java/inha/gdgoc/domain/manito/controller/ManitoVerifyController.java +++ b/src/main/java/inha/gdgoc/domain/manito/controller/ManitoVerifyController.java @@ -2,6 +2,7 @@ import inha.gdgoc.domain.manito.dto.request.ManitoVerifyRequest; import inha.gdgoc.domain.manito.dto.response.ManitoVerifyResponse; +import inha.gdgoc.domain.manito.entity.ManitoAssignment; import inha.gdgoc.domain.manito.service.ManitoUserService; import inha.gdgoc.global.dto.response.ApiResponse; import jakarta.validation.Valid; @@ -21,8 +22,13 @@ public class ManitoVerifyController { @PostMapping("/verify") public ResponseEntity> verify(@Valid @RequestBody ManitoVerifyRequest request) { - String cipher = manitoUserService.verifyAndGetCipher(request.sessionCode(), request.studentId(), request.pin()); + ManitoAssignment assignment = manitoUserService.verifyAndGetAssignment(request.sessionCode(), request.studentId(), request.pin()); - return ResponseEntity.ok(ApiResponse.ok("마니또 정보 조회 성공", new ManitoVerifyResponse(cipher))); + String cipher = assignment.getEncryptedManitto(); + String ownerName = assignment.getName(); + + ManitoVerifyResponse response = new ManitoVerifyResponse(cipher, ownerName); + + return ResponseEntity.ok(ApiResponse.ok("마니또 정보 조회 성공", response)); } -} +} \ No newline at end of file diff --git a/src/main/java/inha/gdgoc/domain/manito/dto/response/ManitoVerifyResponse.java b/src/main/java/inha/gdgoc/domain/manito/dto/response/ManitoVerifyResponse.java index 60890d1..cb969fb 100644 --- a/src/main/java/inha/gdgoc/domain/manito/dto/response/ManitoVerifyResponse.java +++ b/src/main/java/inha/gdgoc/domain/manito/dto/response/ManitoVerifyResponse.java @@ -1,10 +1,11 @@ package inha.gdgoc.domain.manito.dto.response; /** - * 마니또 검증 성공 시, 클라이언트에서 복호화할 암호문을 내려주는 DTO + * 마니또 검증 성공 시, 클라이언트에서 복호화할 암호문과 + * 요청자(=giver)의 이름을 내려주는 DTO */ public record ManitoVerifyResponse( - - String encryptedManito + String encryptedManito, + String ownerName ) { } \ No newline at end of file diff --git a/src/main/java/inha/gdgoc/domain/manito/service/ManitoUserService.java b/src/main/java/inha/gdgoc/domain/manito/service/ManitoUserService.java index 95d95b9..907698a 100644 --- a/src/main/java/inha/gdgoc/domain/manito/service/ManitoUserService.java +++ b/src/main/java/inha/gdgoc/domain/manito/service/ManitoUserService.java @@ -22,13 +22,8 @@ public class ManitoUserService { private final PasswordEncoder passwordEncoder; private final ManitoPinPolicy manitoPinPolicy; - /** - * pin 검증 후 암호문 반환 - */ @Transactional(readOnly = true) - public String verifyAndGetCipher(String sessionCode, String studentId, String pinPlain) { - - log.info("[MANITO] >>> verifyAndGetCipher CALLED (sessionCode={}, studentId={})", sessionCode, studentId); + public ManitoAssignment verifyAndGetAssignment(String sessionCode, String studentId, String pinPlain) { ManitoSession session = sessionRepository.findByCode(sessionCode) .orElseThrow(() -> new BusinessException(GlobalErrorCode.RESOURCE_NOT_FOUND, "세션 코드가 올바르지 않습니다.")); @@ -48,7 +43,6 @@ public String verifyAndGetCipher(String sessionCode, String studentId, String pi if (assignment.getEncryptedManitto() == null || assignment.getEncryptedManitto().isBlank()) { throw new BusinessException(GlobalErrorCode.RESOURCE_NOT_FOUND, "아직 마니또 암호문이 업로드되지 않았습니다. 관리자에게 문의하세요."); } - - return assignment.getEncryptedManitto(); + return assignment; } } \ No newline at end of file