diff --git a/src/main/java/com/onebridge/ouch/controller/healthStatus/HealthStatusController.java b/src/main/java/com/onebridge/ouch/controller/healthStatus/HealthStatusController.java index 0f37813..94ddcd6 100644 --- a/src/main/java/com/onebridge/ouch/controller/healthStatus/HealthStatusController.java +++ b/src/main/java/com/onebridge/ouch/controller/healthStatus/HealthStatusController.java @@ -1,21 +1,14 @@ package com.onebridge.ouch.controller.healthStatus; -import java.util.List; - import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import com.onebridge.ouch.apiPayload.ApiResponse; -import com.onebridge.ouch.dto.healthStatus.request.HealthStatusCreateRequest; import com.onebridge.ouch.dto.healthStatus.request.HealthStatusUpdateRequest; -import com.onebridge.ouch.dto.healthStatus.response.DateAndDisease; import com.onebridge.ouch.dto.healthStatus.response.GetHealthStatusResponse; import com.onebridge.ouch.security.authorization.UserId; import com.onebridge.ouch.service.healthStatus.HealthStatusService; @@ -34,23 +27,21 @@ public class HealthStatusController { private final HealthStatusService healthStatusService; //건강상태 생성 - @Operation(summary = "건강상태 생성 API", description = "건강상태 생성 API 입니다.") - @PostMapping - public ResponseEntity> createHealthStatus( - @RequestBody @Valid HealthStatusCreateRequest request, - @UserId Long userId - ) { - healthStatusService.createHealthStatus(request, userId); - return ResponseEntity.ok(ApiResponse.successWithNoData()); - } + // @Operation(summary = "건강상태 생성 API", description = "건강상태 생성 API 입니다.") + // @PostMapping + // public ResponseEntity> createHealthStatus( + // @RequestBody @Valid HealthStatusCreateRequest request, + // @UserId Long userId + // ) { + // healthStatusService.createHealthStatus(request, userId); + // return ResponseEntity.ok(ApiResponse.successWithNoData()); + // } //특정 건강상태 조회 @Operation(summary = "건강상태 조회 API", description = "건강상태 조회 API 입니다.") - @GetMapping("/{healthStatusId}") - public ResponseEntity> getHealthStatus(@PathVariable Long healthStatusId, - @UserId Long userId - ) { - GetHealthStatusResponse response = healthStatusService.getHealthStatus(healthStatusId, userId); + @GetMapping + public ResponseEntity> getHealthStatus(@UserId Long userId) { + GetHealthStatusResponse response = healthStatusService.getHealthStatus(userId); return ResponseEntity.ok(ApiResponse.success(response)); } @@ -68,23 +59,22 @@ public ResponseEntity>> getUsersAllHealthStatus //특정 건강상태 수정 @Operation(summary = "건강상태 수정 API", description = "건강상태 수정 API 입니다.") - @PutMapping("/{healthStatusId}") + @PutMapping public ResponseEntity> updateHealthStatus( @RequestBody @Valid HealthStatusUpdateRequest request, - @PathVariable Long healthStatusId, @UserId Long userId ) { - healthStatusService.updateHealthStatus(request, healthStatusId, userId); + healthStatusService.updateHealthStatus(request, userId); return ResponseEntity.ok(ApiResponse.successWithNoData()); } - //특정 건강상태 삭제 - @Operation(summary = "건강상태 삭제 API", description = "건강상태 삭제 API 입니다.") - @DeleteMapping("/{healthStatusId}") - public ResponseEntity> deleteHealthStatus(@PathVariable Long healthStatusId, - @UserId Long userId - ) { - healthStatusService.deleteHealthStatus(healthStatusId, userId); - return ResponseEntity.ok(ApiResponse.successWithNoData()); - } + // //특정 건강상태 삭제 + // @Operation(summary = "건강상태 삭제 API", description = "건강상태 삭제 API 입니다.") + // @DeleteMapping("/{healthStatusId}") + // public ResponseEntity> deleteHealthStatus(@PathVariable Long healthStatusId, + // @UserId Long userId + // ) { + // healthStatusService.deleteHealthStatus(healthStatusId, userId); + // return ResponseEntity.ok(ApiResponse.successWithNoData()); + // } } diff --git a/src/main/java/com/onebridge/ouch/converter/HealthStatusConverter.java b/src/main/java/com/onebridge/ouch/converter/HealthStatusConverter.java index 2fb64a9..06686e0 100644 --- a/src/main/java/com/onebridge/ouch/converter/HealthStatusConverter.java +++ b/src/main/java/com/onebridge/ouch/converter/HealthStatusConverter.java @@ -1,15 +1,10 @@ package com.onebridge.ouch.converter; -import java.util.ArrayList; -import java.util.List; - import org.springframework.stereotype.Component; import com.onebridge.ouch.domain.HealthStatus; import com.onebridge.ouch.domain.User; -import com.onebridge.ouch.dto.healthStatus.request.HealthStatusCreateRequest; import com.onebridge.ouch.dto.healthStatus.request.HealthStatusUpdateRequest; -import com.onebridge.ouch.dto.healthStatus.response.DateAndDisease; import com.onebridge.ouch.dto.healthStatus.response.GetHealthStatusResponse; @Component @@ -35,14 +30,25 @@ public GetHealthStatusResponse healthStatusToGetHealthStatusResponse(HealthStatu healthStatus.getMedicineHistory()); } - public HealthStatus healthStatusCreateRequestToHealthStatus(HealthStatusCreateRequest request, User user) { + // public HealthStatus healthStatusCreateRequestToHealthStatus(HealthStatusCreateRequest request, User user) { + // return HealthStatus.builder() + // .user(user) + // .disease(request.getDisease()) + // .allergy(request.getAllergy()) + // .bloodPressure(request.getBloodPressure()) + // .bloodSugar(request.getBloodSugar()) + // .medicineHistory(request.getMedicineHistory()) + // .build(); + // } + + public HealthStatus createHealthStatus(User user) { return HealthStatus.builder() .user(user) - .disease(request.getDisease()) - .allergy(request.getAllergy()) - .bloodPressure(request.getBloodPressure()) - .bloodSugar(request.getBloodSugar()) - .medicineHistory(request.getMedicineHistory()) + .disease(null) + .allergy(null) + .bloodPressure(null) + .bloodSugar(null) + .medicineHistory(null) .build(); } diff --git a/src/main/java/com/onebridge/ouch/repository/healthStatus/HealthStatusRepository.java b/src/main/java/com/onebridge/ouch/repository/healthStatus/HealthStatusRepository.java index a345892..bf220e6 100644 --- a/src/main/java/com/onebridge/ouch/repository/healthStatus/HealthStatusRepository.java +++ b/src/main/java/com/onebridge/ouch/repository/healthStatus/HealthStatusRepository.java @@ -13,4 +13,6 @@ public interface HealthStatusRepository extends JpaRepository findAllByUserId(Long userId); Optional findByIdAndUserId(Long medicalHistoryId, Long userId); + + Optional findByUserId(Long userId); } diff --git a/src/main/java/com/onebridge/ouch/security/service/SignUpService.java b/src/main/java/com/onebridge/ouch/security/service/SignUpService.java index 7a8b07d..bfa4a60 100644 --- a/src/main/java/com/onebridge/ouch/security/service/SignUpService.java +++ b/src/main/java/com/onebridge/ouch/security/service/SignUpService.java @@ -6,13 +6,16 @@ import com.onebridge.ouch.apiPayload.code.error.CommonErrorCode; import com.onebridge.ouch.apiPayload.code.error.SecurityErrorCode; import com.onebridge.ouch.apiPayload.exception.OuchException; +import com.onebridge.ouch.converter.HealthStatusConverter; +import com.onebridge.ouch.domain.HealthStatus; import com.onebridge.ouch.domain.Language; import com.onebridge.ouch.domain.Nation; import com.onebridge.ouch.domain.User; -import com.onebridge.ouch.security.dto.request.SignUpRequest; +import com.onebridge.ouch.repository.healthStatus.HealthStatusRepository; import com.onebridge.ouch.repository.language.LanguageRepository; import com.onebridge.ouch.repository.nation.NationRepository; import com.onebridge.ouch.repository.user.UserRepository; +import com.onebridge.ouch.security.dto.request.SignUpRequest; import jakarta.transaction.Transactional; import lombok.RequiredArgsConstructor; @@ -26,6 +29,8 @@ public class SignUpService { public final PasswordEncoder passwordEncoder; private final LanguageRepository languageRepository; private final NationRepository nationRepository; + private final HealthStatusConverter healthStatusConverter; + private final HealthStatusRepository healthStatusRepository; public void signUpUser(SignUpRequest signUpRequest) { checkDuplicatedLoginId(signUpRequest.getLoginId()); @@ -40,6 +45,9 @@ public void signUpUser(SignUpRequest signUpRequest) { User user = signUpRequest.toEntity(passwordEncoder.encode(signUpRequest.getPassword()), language, nation); userRepository.save(user); + + HealthStatus healthStatus = healthStatusConverter.createHealthStatus(user); + healthStatusRepository.save(healthStatus); } public void checkDuplicatedLoginId(String loginId) { diff --git a/src/main/java/com/onebridge/ouch/service/healthStatus/HealthStatusService.java b/src/main/java/com/onebridge/ouch/service/healthStatus/HealthStatusService.java index 0326704..badab7f 100644 --- a/src/main/java/com/onebridge/ouch/service/healthStatus/HealthStatusService.java +++ b/src/main/java/com/onebridge/ouch/service/healthStatus/HealthStatusService.java @@ -1,19 +1,13 @@ package com.onebridge.ouch.service.healthStatus; -import java.util.List; - import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import com.onebridge.ouch.apiPayload.code.error.CommonErrorCode; import com.onebridge.ouch.apiPayload.code.error.HealthStatusErrorCode; import com.onebridge.ouch.apiPayload.exception.OuchException; import com.onebridge.ouch.converter.HealthStatusConverter; import com.onebridge.ouch.domain.HealthStatus; -import com.onebridge.ouch.domain.User; -import com.onebridge.ouch.dto.healthStatus.request.HealthStatusCreateRequest; import com.onebridge.ouch.dto.healthStatus.request.HealthStatusUpdateRequest; -import com.onebridge.ouch.dto.healthStatus.response.DateAndDisease; import com.onebridge.ouch.dto.healthStatus.response.GetHealthStatusResponse; import com.onebridge.ouch.repository.healthStatus.HealthStatusRepository; import com.onebridge.ouch.repository.user.UserRepository; @@ -28,22 +22,22 @@ public class HealthStatusService { private final HealthStatusConverter healthStatusConverter; private final HealthStatusRepository healthStatusRepository; - //건강상태 생성 - @Transactional - public void createHealthStatus(HealthStatusCreateRequest request, Long userId) { - User user = userRepository.findById(userId) - .orElseThrow(() -> new OuchException(CommonErrorCode.MEMBER_NOT_FOUND)); - - HealthStatus healthStatus = healthStatusConverter.healthStatusCreateRequestToHealthStatus(request, - user); - - healthStatusRepository.save(healthStatus); - } + // //건강상태 생성 + // @Transactional + // public void createHealthStatus(HealthStatusCreateRequest request, Long userId) { + // User user = userRepository.findById(userId) + // .orElseThrow(() -> new OuchException(CommonErrorCode.MEMBER_NOT_FOUND)); + // + // HealthStatus healthStatus = healthStatusConverter.healthStatusCreateRequestToHealthStatus(request, + // user); + // + // healthStatusRepository.save(healthStatus); + // } //특정 건강상태 조회 @Transactional - public GetHealthStatusResponse getHealthStatus(Long healthStatusId, Long userId) { - HealthStatus healthStatus = healthStatusRepository.findByIdAndUserId(healthStatusId, userId) + public GetHealthStatusResponse getHealthStatus(Long userId) { + HealthStatus healthStatus = healthStatusRepository.findByUserId(userId) .orElseThrow(() -> new OuchException(HealthStatusErrorCode.HEALTH_STATUS_NOT_FOUND)); return healthStatusConverter.healthStatusToGetHealthStatusResponse(healthStatus); } @@ -59,9 +53,8 @@ public List getUsersAllHealthStatus(Long userId) { //특정 건강상태 수정 @Transactional - public void updateHealthStatus(HealthStatusUpdateRequest request, - Long healthStatusId, Long userId) { - HealthStatus healthStatus = healthStatusRepository.findByIdAndUserId(healthStatusId, userId) + public void updateHealthStatus(HealthStatusUpdateRequest request, Long userId) { + HealthStatus healthStatus = healthStatusRepository.findByUserId(userId) .orElseThrow(() -> new OuchException(HealthStatusErrorCode.HEALTH_STATUS_NOT_FOUND)); HealthStatus updatedHealthStatus = healthStatusConverter @@ -70,12 +63,12 @@ public void updateHealthStatus(HealthStatusUpdateRequest request, healthStatusRepository.save(updatedHealthStatus); } - //특정 건강상태 삭제 - @Transactional - public void deleteHealthStatus(Long healthStatusId, Long userId) { - HealthStatus healthStatus = healthStatusRepository.findByIdAndUserId(healthStatusId, userId) - .orElseThrow(() -> new OuchException(HealthStatusErrorCode.HEALTH_STATUS_NOT_FOUND)); - - healthStatusRepository.delete(healthStatus); - } + // //특정 건강상태 삭제 + // @Transactional + // public void deleteHealthStatus(Long healthStatusId, Long userId) { + // HealthStatus healthStatus = healthStatusRepository.findByIdAndUserId(healthStatusId, userId) + // .orElseThrow(() -> new OuchException(HealthStatusErrorCode.HEALTH_STATUS_NOT_FOUND)); + // + // healthStatusRepository.delete(healthStatus); + // } }