Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -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;
Expand All @@ -34,23 +27,21 @@ public class HealthStatusController {
private final HealthStatusService healthStatusService;

//건강상태 생성
@Operation(summary = "건강상태 생성 API", description = "건강상태 생성 API 입니다.")
@PostMapping
public ResponseEntity<ApiResponse<Void>> 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<ApiResponse<Void>> 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<ApiResponse<GetHealthStatusResponse>> getHealthStatus(@PathVariable Long healthStatusId,
@UserId Long userId
) {
GetHealthStatusResponse response = healthStatusService.getHealthStatus(healthStatusId, userId);
@GetMapping
public ResponseEntity<ApiResponse<GetHealthStatusResponse>> getHealthStatus(@UserId Long userId) {
GetHealthStatusResponse response = healthStatusService.getHealthStatus(userId);
return ResponseEntity.ok(ApiResponse.success(response));
}

Expand All @@ -68,23 +59,22 @@ public ResponseEntity<ApiResponse<List<DateAndDisease>>> getUsersAllHealthStatus

//특정 건강상태 수정
@Operation(summary = "건강상태 수정 API", description = "건강상태 수정 API 입니다.")
@PutMapping("/{healthStatusId}")
@PutMapping
public ResponseEntity<ApiResponse<Void>> 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<ApiResponse<Void>> 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<ApiResponse<Void>> deleteHealthStatus(@PathVariable Long healthStatusId,
// @UserId Long userId
// ) {
// healthStatusService.deleteHealthStatus(healthStatusId, userId);
// return ResponseEntity.ok(ApiResponse.successWithNoData());
// }
}
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -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();
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,4 +13,6 @@ public interface HealthStatusRepository extends JpaRepository<HealthStatus, Long
List<HealthStatus> findAllByUserId(Long userId);

Optional<HealthStatus> findByIdAndUserId(Long medicalHistoryId, Long userId);

Optional<HealthStatus> findByUserId(Long userId);
}
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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());
Expand All @@ -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) {
Expand Down
Original file line number Diff line number Diff line change
@@ -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;
Expand All @@ -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);
}
Expand All @@ -59,9 +53,8 @@ public List<DateAndDisease> 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
Expand All @@ -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);
// }
}