diff --git a/src/main/java/org/sopt/seonyakServer/domain/senior/controller/SeniorController.java b/src/main/java/org/sopt/seonyakServer/domain/senior/controller/SeniorController.java index bb3427a..5640819 100644 --- a/src/main/java/org/sopt/seonyakServer/domain/senior/controller/SeniorController.java +++ b/src/main/java/org/sopt/seonyakServer/domain/senior/controller/SeniorController.java @@ -4,6 +4,7 @@ import lombok.RequiredArgsConstructor; import org.sopt.seonyakServer.domain.senior.dto.SeniorListResponse; import org.sopt.seonyakServer.domain.senior.dto.SeniorProfileRequest; +import org.sopt.seonyakServer.domain.senior.dto.SeniorProfileResponse; import org.sopt.seonyakServer.domain.senior.model.PreferredTimeList; import org.sopt.seonyakServer.domain.senior.service.SeniorService; import org.springframework.http.ResponseEntity; @@ -44,4 +45,11 @@ public ResponseEntity> searchFieldPosition( ) { return ResponseEntity.ok(seniorService.searchSeniorFieldPosition(field, position)); } + + @GetMapping("/{seniorId}") + public ResponseEntity getSeniorProfile( + @PathVariable final Long seniorId + ) { + return ResponseEntity.ok(seniorService.getSeniorProfile(seniorId)); + } } diff --git a/src/main/java/org/sopt/seonyakServer/domain/senior/dto/SeniorProfileResponse.java b/src/main/java/org/sopt/seonyakServer/domain/senior/dto/SeniorProfileResponse.java new file mode 100644 index 0000000..d8e7ad5 --- /dev/null +++ b/src/main/java/org/sopt/seonyakServer/domain/senior/dto/SeniorProfileResponse.java @@ -0,0 +1,25 @@ +package org.sopt.seonyakServer.domain.senior.dto; + +public record SeniorProfileResponse( + String level, + String career, + String award, + String catchphrase, + String story +) { + public static SeniorProfileResponse of( + final String level, + final String career, + final String award, + final String catchphrase, + final String story + ) { + return new SeniorProfileResponse( + level, + career, + award, + catchphrase, + story + ); + } +} diff --git a/src/main/java/org/sopt/seonyakServer/domain/senior/service/SeniorService.java b/src/main/java/org/sopt/seonyakServer/domain/senior/service/SeniorService.java index f93f181..ca9a545 100644 --- a/src/main/java/org/sopt/seonyakServer/domain/senior/service/SeniorService.java +++ b/src/main/java/org/sopt/seonyakServer/domain/senior/service/SeniorService.java @@ -6,6 +6,7 @@ import org.sopt.seonyakServer.domain.member.model.Member; import org.sopt.seonyakServer.domain.senior.dto.SeniorListResponse; import org.sopt.seonyakServer.domain.senior.dto.SeniorProfileRequest; +import org.sopt.seonyakServer.domain.senior.dto.SeniorProfileResponse; import org.sopt.seonyakServer.domain.senior.model.PreferredTimeList; import org.sopt.seonyakServer.domain.senior.model.Senior; import org.sopt.seonyakServer.domain.senior.repository.SeniorRepository; @@ -64,4 +65,17 @@ public PreferredTimeList getSeniorPreferredTime(Long seniorId) { public List searchSeniorFieldPosition(List field, List position) { return seniorRepository.searchSeniorFieldPosition(field, position); } + + @Transactional(readOnly = true) + public SeniorProfileResponse getSeniorProfile(final Long seniorId) { + Senior senior = seniorRepository.findSeniorByIdOrThrow(seniorId); + + return SeniorProfileResponse.of( + senior.getLevel(), + senior.getCareer(), + senior.getAward(), + senior.getCatchphrase(), + senior.getStory() + ); + } }