Skip to content

[FEAT] 의료기록 CRUD api 구현#33

Merged
99hyuk merged 14 commits intomainfrom
feat/#30/visit-history
Apr 26, 2025
Merged

[FEAT] 의료기록 CRUD api 구현#33
99hyuk merged 14 commits intomainfrom
feat/#30/visit-history

Conversation

@kdy2224
Copy link
Copy Markdown
Contributor

@kdy2224 kdy2224 commented Apr 5, 2025

📌 관련 이슈

✨ PR 세부 내용

[의료기록]

  • 의료기록 생성
  • 특정 의료기록 조회
  • 특정 사용자의 모든 의료기록 조회
  • 특정 의료기록 수정
  • 특정 의료기록 삭제

💬 리뷰 요청 사항

@kdy2224 kdy2224 requested a review from 99hyuk April 5, 2025 15:05
@kdy2224 kdy2224 added the ✨ feature 새로운 기능을 추가합니다 label Apr 5, 2025
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

api URI 전부 restful하게 변경해주세요.
/visit-history로 시작했으면 좋겠습니다

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

figma 보면 medical record 가 의료기록(백엔드 테이블 이름은 visit history), health status 가 건강상태(백엔드 테이블 이름은 medical history)라 사용자나 프론트 개발자가 봤을 때 매칭되면 좋을 거 같아서 이렇게 했는데 바꾸는게 더 좋을까요??

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

도연님 방식으로 바꾸는 거 좋은 것 같습니다. 다만 /create나 이런 건 없에는 게 좋을 것 같아요!

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

메소드명에 2를 넣지말고 직관적으로 구분되게 지으면 좋겠습니다.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

확인했습니다 :)

@Column(columnDefinition = "TEXT")
private String contents_summary;

public void setVisitHistory(VisitHistory visitHistory) {
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

set으로 엔티티 접근하게 두면 안됩니다. 없에주세요

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

-수정 완료-

@JoinColumn(name = "user_id")
private User user;

private String visitDate;
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LocalDate 타입 쓰는 게 좋아보입니다

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

확인했습니다 :)

this.setSummary(summary);
summary.setVisitHistory(this);
}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

set 다 없에주세요

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

-수정 완료-

@AllArgsConstructor
public enum VisitHistoryErrorCode implements ErrorCode {

USER_NOT_FOUND(HttpStatus.NOT_FOUND, "MEDICAL-RECORD400", "User not found."),
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

USER_NOT_FOUND 없에고 commonerrorcode에서 사용해주세요.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

이 pr 뿐만 아니라 에러코드의 예외 문구나, dto의 메시지를 통한 예외 문구를 작성할 때 한글로 작성해주세요. 오류 뜰 시 프론트나 서버에서 어떤 게 문제인지 명확히 인지할 수 있어야합니다.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

반영했습니다:)

// 의료기록 생성
@Operation(summary = "의료기록 생성 API", description = "의료기록을 생성 API 입니다.")
@PostMapping
public ResponseEntity<ApiResponse<VisitHistoryCreateResponse>> createVisitHistory(
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Post이므로 응답 Void로 부탁드리고, 관련 dto도 삭제 부탁드립니다.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

반영했습니다:)

//특정 의료기록 수정
@Operation(summary = "의료기록 수정 API", description = "의료기록을 수정 API 입니다.")
@PutMapping("/{medicalRecordId}")
public ResponseEntity<ApiResponse<VisitHistoryUpdateResponse>> updateVisitHistory(
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

응답 Void로 부탁드리고, 관련 dto도 삭제 부탁드립니다.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

반영했습니다:)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

없에도 될 것 같습니다.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

반영했습니다:)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

없에도 될 것 같습니다.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

반영했습니다:)


VisitHistory visitHistory = visitHistoryRepository.findById(visitHistoryId)
.orElseThrow(() -> new OuchException(VisitHistoryErrorCode.VISIT_HISTORY_NOT_FOUND));

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

user를 존재 여부만 체크하고 따로 의료기록과 연관지어 사용하고 있지 않습니다. 이러면 특정 유저의 의료기록이라고 보장할 수 없습니다.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

반영했습니다:)

VisitHistory visitHistory = visitHistoryRepository.findById(visitHistoryId)
.orElseThrow(
() -> new OuchException(VisitHistoryErrorCode.VISIT_HISTORY_NOT_FOUND));

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

user를 존재 여부만 체크하고 따로 의료기록과 연관지어 사용하고 있지 않습니다. 이러면 특정 유저의 의료기록이라고 보장할 수 없습니다.

Copy link
Copy Markdown
Contributor Author

@kdy2224 kdy2224 Apr 23, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

image 의료기록을 조회할 땐 visitHistoryId 로 조회해야하는데 그걸 userId 와 이런식으로 연관시키는건 어떨까요?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

이렇게 하셔도 가능은 한데 visithistory가 애초에 user 정보를 담고 있어서 사진 처럼 하게 되면 쿼리가 2번 생성되고, 불필요한 user객체가 생성됩니다.
visitHistoryRepository.findByIdAndUserId(visitHistoryId, userId) 이런 식으로 커스텀 리포지토리 만드는 게 간단합니다.

Optional findByIdAndUserId(Long id, Long userId); 이렇게 정의하시면 될거에요.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

넵 반영했습니다:)

Long visitHistoryId, Long userId) {
userRepository.findById(userId)
.orElseThrow(() -> new OuchException(VisitHistoryErrorCode.USER_NOT_FOUND));

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

공통 예외 처리로 부탁드립니다.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

반영했습니다:)


Department department = departmentRepository.findByName(request.getMedicalSubject()
).orElseThrow(() -> new OuchException(VisitHistoryErrorCode.DEPARTMENT_NOT_FOUND));

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

병원, 진료과는 우선 객체 사용하지말고 string 필드 사용 부탁드립니다.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

반영했습니다:)

.symptoms(request.getSymptoms())
.summary(summary)
.build();

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

여기도 컨버터를 도입하면 좋을 것 같습니다.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

반영했습니다:)

@Repository
public interface HospitalRepository extends JpaRepository<Hospital, Long> {

Optional<Hospital> findByName(String name);
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

이 메소드 사용하는 곳 없으면 우선 지워주세요.

@Repository
public interface DepartmentRepository extends JpaRepository<Department, Long> {

Optional<Department> findByName(String name);
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

이 메소드 사용하는 곳 없으면 우선 지워주세요.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

DepartmentRepository, HospitalRepository 삭제했습니다:)

Copy link
Copy Markdown
Contributor

@99hyuk 99hyuk left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

수고하셨습니다!

@99hyuk 99hyuk merged commit 27d9563 into main Apr 26, 2025
1 check passed
99hyuk added a commit that referenced this pull request Apr 27, 2025
* [FIX] 인증 로직 개선 및 JWT 직렬화 방식 수정 (#38)

* [FIX] principal을 UserDetails 객체로 변경하고 credentials은 인증 후 null 처리

* [FIX] JWT claims를 단순 타입으로 직렬화하도록 변경

* [REFACT] JWT claims 각주 설명 추가

* [FEAT] 건강상태 CRUD api 구현 (#35)

수고하셨습니다.

* [REFACT] 도메인 연관관계 개선 및 엔티티 구조 리팩토링 (복합키 제거, 연관명칭 통일, 생명주기 관리 명확화) (#39)  (#40)

* [REFACT] Hospital orphanRemoval 설정, HospitalDepartment 복합키 제거 후 단일 기본키로 변경

* [REFACT] 자가진단증상 엔티티 클래스명 변경, 복합키 삭제 후 단일 기본키로 수정

* [REFACT] 도메인 클래스명 변경  VisitHistory -> MedicalRecord

* [REFACT] 도메인 클래스명 변경 MedicalHistory -> HealthStatus, HealthStatus와 User를 1대1 관계로 설정

* [REFACT] 번역테이블 번역필드 추가, summary 테이블 기본 PK로 수정 및 연관관계 수정, Nation 테이블 국가 코드 필드 추가, privateInformation 테이블 비활성화

* [REFACT] 언어 CRUD 관련 컨트롤러, 로직 비활성화 (DB로 직접 관리)

* [FIX] MedicalRecord, Summary 테이블 간 연관 필드 매핑 수정

* [FEAT] 의료기록 CRUD api 구현 (#33)

* [FEAT] 의료기록 CRUD api 구현

* [REFACT] 의료기록 api 리팩토링

* [REFACT] 의료기록 api 리팩토링

* [REFACT] 의료기록 converter 수정

* [REFACT] 리뷰 반영_1

* [REFACT] 의료기록 api 피드백 반영

* [REFACT] Summary 테이블의 contents 필드 삭제

* [CHORE] VisitHistoryController 에 스웨거 세부 설정 추가

* [CHORE] 리뷰/피드백 반영

* [REFACT] visitHistoryService 의 visit history 조회 쿼리메서드 변경

* [CHORE] DepartmentRepository, HospitalRepository 삭제

* [CHORE] visitHistory -> medicalRecord(이름변경) 에 따른 수정사항 수정

* [CHORE] 건강상태 테이블명 변경 이후 수정사항 수정 (#42)

* [FEAT] 건강상태 CRUD api 구현

* [REFACT] 건강상태 api 리팩토링

* [REFACT] 건강상태 converter 수정

* [REFACT] 건강상태 api 피드백 반영

* [REFACT] @userid 로 변경

* [CHORE] MedicalHistoryController 에 스웨거 세부 설정 추가

* [CHORE] 리뷰/피드백 반영

* [REFACT] MedicalHistoryService 의 midecal history 조회 쿼리 메서드 변경

* [CHORE] MedicalHistory -> HealthStatus(테이블명 변경) 에 따른 수정사항 수정

* [REFACT] 건강상태 기록이 유저 한 명당 하나씩만 보유할 수 있으므로 모든 기록을 조회하는 관련 로직들 주석 처리

* [REFACT] 유저 <-> 건강상태 단방향으로 변경

* [REFACT] 사용하지 않는 로직 주석화

---------

Co-authored-by: 99hyuk <yh99cho1@gmail.com>

* [FEAT] 자가진단표 api 구현 (#37)

* [FEAT] 자가진단표 api 구현

* [REFACT] 자가진단표 api 리팩토링

* [CHORE] 오타 수정

* [REFACT] user api 리팩토링

* [REFACT] 증상 목록 조회 api 수정

* [REFACT] 자가진단표 api 컨버터 수정

* [CHORE] 사소한 코드 수정

* [TEMP] 임시저장

* [REFACT] 자가진단표 api 피드백 반영

* [REFACT] @userid 로 변경

* [CHORE] SelfDiagnosisController, SymptomController 에 스웨거 세부 설정 추가

* [CHORE] 리뷰/피드백 반영

* [CHORE] 불필요한 코드, 파일 삭제

* [REFACT] selfDiagnosisService 의 self diagnosis 조회 쿼리 메서드 변경

* [REFACT] 피드백/리뷰 반영
SelfDiagnosisConverter 의 많은 메서드에 포함된 로직을 새 메서드(SymptomListForResponseDto) 로 뺌.
UserController, UserService 의 사용자 삭제 api 삭제 및 사용자 비활성화 api 의 method 를 patch->delete 로 변경

* [CHORE] 피드백/리뷰 반영
1. SymptomConverter의 메서드명 변경(2 삭제)
2. 불필요한 user dto 모두 삭제

* [CHORE] SelfSymptom -> DiagnosisSymptom(이름변경)에 따른 수정사항 수정

* [CHORE] SelfDiagnosisConverter 일부 메서드 이름 수정

* [REFACT] 자가진단 수정하는 경우 tobuilder에서 user값을 받을 필요 없음, createAt 또한 엔티티 어노테이션에서 자동 적용되므로 삭제

* [REFACT] 변수명 수정

* [REFACT] SelfDiagnosis 엔티티 내 @SuperBuilder -> @builder 로 수정 (상속 없음)

* [REFACT] BaseEntity에 빌더 패턴 필요 없음

---------

Co-authored-by: 99hyuk <yh99cho1@gmail.com>

* [CICD] Spring Boot Healthcheck 활성화 및 docker-compose 기반 자동 배포 구축, CORS 설정 (#43) (#44)

* [FEAT] spring actuator 의존성 주입

* [FEAT] 배포용 yml에 actuator 헬스체크 경로 추가

* [REFACT] 배포 CD 워크플로우 수정 (compose.yml, .env 파일 생성, 도커 재시작)

* [REFACT] curl localhost로 작동하도록 수정

* [REFACT] CORS 설정 원복 (필터 삭제, 모든 접속 허가, 로그인/회원가입을 제외하곤 인증된 사용자만 접근 가능)

---------

Co-authored-by: doyonkim <111870376+kdy2224@users.noreply.github.com>
99hyuk added a commit that referenced this pull request Apr 27, 2025
* [FIX] 인증 로직 개선 및 JWT 직렬화 방식 수정 (#38)

* [FIX] principal을 UserDetails 객체로 변경하고 credentials은 인증 후 null 처리

* [FIX] JWT claims를 단순 타입으로 직렬화하도록 변경

* [REFACT] JWT claims 각주 설명 추가

* [FEAT] 건강상태 CRUD api 구현 (#35)

수고하셨습니다.

* [REFACT] 도메인 연관관계 개선 및 엔티티 구조 리팩토링 (복합키 제거, 연관명칭 통일, 생명주기 관리 명확화) (#39)  (#40)

* [REFACT] Hospital orphanRemoval 설정, HospitalDepartment 복합키 제거 후 단일 기본키로 변경

* [REFACT] 자가진단증상 엔티티 클래스명 변경, 복합키 삭제 후 단일 기본키로 수정

* [REFACT] 도메인 클래스명 변경  VisitHistory -> MedicalRecord

* [REFACT] 도메인 클래스명 변경 MedicalHistory -> HealthStatus, HealthStatus와 User를 1대1 관계로 설정

* [REFACT] 번역테이블 번역필드 추가, summary 테이블 기본 PK로 수정 및 연관관계 수정, Nation 테이블 국가 코드 필드 추가, privateInformation 테이블 비활성화

* [REFACT] 언어 CRUD 관련 컨트롤러, 로직 비활성화 (DB로 직접 관리)

* [FIX] MedicalRecord, Summary 테이블 간 연관 필드 매핑 수정

* [FEAT] 의료기록 CRUD api 구현 (#33)

* [FEAT] 의료기록 CRUD api 구현

* [REFACT] 의료기록 api 리팩토링

* [REFACT] 의료기록 api 리팩토링

* [REFACT] 의료기록 converter 수정

* [REFACT] 리뷰 반영_1

* [REFACT] 의료기록 api 피드백 반영

* [REFACT] Summary 테이블의 contents 필드 삭제

* [CHORE] VisitHistoryController 에 스웨거 세부 설정 추가

* [CHORE] 리뷰/피드백 반영

* [REFACT] visitHistoryService 의 visit history 조회 쿼리메서드 변경

* [CHORE] DepartmentRepository, HospitalRepository 삭제

* [CHORE] visitHistory -> medicalRecord(이름변경) 에 따른 수정사항 수정

* [CHORE] 건강상태 테이블명 변경 이후 수정사항 수정 (#42)

* [FEAT] 건강상태 CRUD api 구현

* [REFACT] 건강상태 api 리팩토링

* [REFACT] 건강상태 converter 수정

* [REFACT] 건강상태 api 피드백 반영

* [REFACT] @userid 로 변경

* [CHORE] MedicalHistoryController 에 스웨거 세부 설정 추가

* [CHORE] 리뷰/피드백 반영

* [REFACT] MedicalHistoryService 의 midecal history 조회 쿼리 메서드 변경

* [CHORE] MedicalHistory -> HealthStatus(테이블명 변경) 에 따른 수정사항 수정

* [REFACT] 건강상태 기록이 유저 한 명당 하나씩만 보유할 수 있으므로 모든 기록을 조회하는 관련 로직들 주석 처리

* [REFACT] 유저 <-> 건강상태 단방향으로 변경

* [REFACT] 사용하지 않는 로직 주석화

---------

Co-authored-by: 99hyuk <yh99cho1@gmail.com>

* [FEAT] 자가진단표 api 구현 (#37)

* [FEAT] 자가진단표 api 구현

* [REFACT] 자가진단표 api 리팩토링

* [CHORE] 오타 수정

* [REFACT] user api 리팩토링

* [REFACT] 증상 목록 조회 api 수정

* [REFACT] 자가진단표 api 컨버터 수정

* [CHORE] 사소한 코드 수정

* [TEMP] 임시저장

* [REFACT] 자가진단표 api 피드백 반영

* [REFACT] @userid 로 변경

* [CHORE] SelfDiagnosisController, SymptomController 에 스웨거 세부 설정 추가

* [CHORE] 리뷰/피드백 반영

* [CHORE] 불필요한 코드, 파일 삭제

* [REFACT] selfDiagnosisService 의 self diagnosis 조회 쿼리 메서드 변경

* [REFACT] 피드백/리뷰 반영
SelfDiagnosisConverter 의 많은 메서드에 포함된 로직을 새 메서드(SymptomListForResponseDto) 로 뺌.
UserController, UserService 의 사용자 삭제 api 삭제 및 사용자 비활성화 api 의 method 를 patch->delete 로 변경

* [CHORE] 피드백/리뷰 반영
1. SymptomConverter의 메서드명 변경(2 삭제)
2. 불필요한 user dto 모두 삭제

* [CHORE] SelfSymptom -> DiagnosisSymptom(이름변경)에 따른 수정사항 수정

* [CHORE] SelfDiagnosisConverter 일부 메서드 이름 수정

* [REFACT] 자가진단 수정하는 경우 tobuilder에서 user값을 받을 필요 없음, createAt 또한 엔티티 어노테이션에서 자동 적용되므로 삭제

* [REFACT] 변수명 수정

* [REFACT] SelfDiagnosis 엔티티 내 @SuperBuilder -> @builder 로 수정 (상속 없음)

* [REFACT] BaseEntity에 빌더 패턴 필요 없음

---------

Co-authored-by: 99hyuk <yh99cho1@gmail.com>

* [CICD] Spring Boot Healthcheck 활성화 및 docker-compose 기반 자동 배포 구축, CORS 설정 (#43) (#44)

* [FEAT] spring actuator 의존성 주입

* [FEAT] 배포용 yml에 actuator 헬스체크 경로 추가

* [REFACT] 배포 CD 워크플로우 수정 (compose.yml, .env 파일 생성, 도커 재시작)

* [REFACT] curl localhost로 작동하도록 수정

* [REFACT] CORS 설정 원복 (필터 삭제, 모든 접속 허가, 로그인/회원가입을 제외하곤 인증된 사용자만 접근 가능)

* [REFACT] cd_workflow 파일 수정

---------

Co-authored-by: doyonkim <111870376+kdy2224@users.noreply.github.com>
99hyuk added a commit that referenced this pull request Apr 28, 2025
* [CICD] release 배포 (#46)

* [FIX] 인증 로직 개선 및 JWT 직렬화 방식 수정 (#38)

* [FIX] principal을 UserDetails 객체로 변경하고 credentials은 인증 후 null 처리

* [FIX] JWT claims를 단순 타입으로 직렬화하도록 변경

* [REFACT] JWT claims 각주 설명 추가

* [FEAT] 건강상태 CRUD api 구현 (#35)

수고하셨습니다.

* [REFACT] 도메인 연관관계 개선 및 엔티티 구조 리팩토링 (복합키 제거, 연관명칭 통일, 생명주기 관리 명확화) (#39)  (#40)

* [REFACT] Hospital orphanRemoval 설정, HospitalDepartment 복합키 제거 후 단일 기본키로 변경

* [REFACT] 자가진단증상 엔티티 클래스명 변경, 복합키 삭제 후 단일 기본키로 수정

* [REFACT] 도메인 클래스명 변경  VisitHistory -> MedicalRecord

* [REFACT] 도메인 클래스명 변경 MedicalHistory -> HealthStatus, HealthStatus와 User를 1대1 관계로 설정

* [REFACT] 번역테이블 번역필드 추가, summary 테이블 기본 PK로 수정 및 연관관계 수정, Nation 테이블 국가 코드 필드 추가, privateInformation 테이블 비활성화

* [REFACT] 언어 CRUD 관련 컨트롤러, 로직 비활성화 (DB로 직접 관리)

* [FIX] MedicalRecord, Summary 테이블 간 연관 필드 매핑 수정

* [FEAT] 의료기록 CRUD api 구현 (#33)

* [FEAT] 의료기록 CRUD api 구현

* [REFACT] 의료기록 api 리팩토링

* [REFACT] 의료기록 api 리팩토링

* [REFACT] 의료기록 converter 수정

* [REFACT] 리뷰 반영_1

* [REFACT] 의료기록 api 피드백 반영

* [REFACT] Summary 테이블의 contents 필드 삭제

* [CHORE] VisitHistoryController 에 스웨거 세부 설정 추가

* [CHORE] 리뷰/피드백 반영

* [REFACT] visitHistoryService 의 visit history 조회 쿼리메서드 변경

* [CHORE] DepartmentRepository, HospitalRepository 삭제

* [CHORE] visitHistory -> medicalRecord(이름변경) 에 따른 수정사항 수정

* [CHORE] 건강상태 테이블명 변경 이후 수정사항 수정 (#42)

* [FEAT] 건강상태 CRUD api 구현

* [REFACT] 건강상태 api 리팩토링

* [REFACT] 건강상태 converter 수정

* [REFACT] 건강상태 api 피드백 반영

* [REFACT] @userid 로 변경

* [CHORE] MedicalHistoryController 에 스웨거 세부 설정 추가

* [CHORE] 리뷰/피드백 반영

* [REFACT] MedicalHistoryService 의 midecal history 조회 쿼리 메서드 변경

* [CHORE] MedicalHistory -> HealthStatus(테이블명 변경) 에 따른 수정사항 수정

* [REFACT] 건강상태 기록이 유저 한 명당 하나씩만 보유할 수 있으므로 모든 기록을 조회하는 관련 로직들 주석 처리

* [REFACT] 유저 <-> 건강상태 단방향으로 변경

* [REFACT] 사용하지 않는 로직 주석화

---------

Co-authored-by: 99hyuk <yh99cho1@gmail.com>

* [FEAT] 자가진단표 api 구현 (#37)

* [FEAT] 자가진단표 api 구현

* [REFACT] 자가진단표 api 리팩토링

* [CHORE] 오타 수정

* [REFACT] user api 리팩토링

* [REFACT] 증상 목록 조회 api 수정

* [REFACT] 자가진단표 api 컨버터 수정

* [CHORE] 사소한 코드 수정

* [TEMP] 임시저장

* [REFACT] 자가진단표 api 피드백 반영

* [REFACT] @userid 로 변경

* [CHORE] SelfDiagnosisController, SymptomController 에 스웨거 세부 설정 추가

* [CHORE] 리뷰/피드백 반영

* [CHORE] 불필요한 코드, 파일 삭제

* [REFACT] selfDiagnosisService 의 self diagnosis 조회 쿼리 메서드 변경

* [REFACT] 피드백/리뷰 반영
SelfDiagnosisConverter 의 많은 메서드에 포함된 로직을 새 메서드(SymptomListForResponseDto) 로 뺌.
UserController, UserService 의 사용자 삭제 api 삭제 및 사용자 비활성화 api 의 method 를 patch->delete 로 변경

* [CHORE] 피드백/리뷰 반영
1. SymptomConverter의 메서드명 변경(2 삭제)
2. 불필요한 user dto 모두 삭제

* [CHORE] SelfSymptom -> DiagnosisSymptom(이름변경)에 따른 수정사항 수정

* [CHORE] SelfDiagnosisConverter 일부 메서드 이름 수정

* [REFACT] 자가진단 수정하는 경우 tobuilder에서 user값을 받을 필요 없음, createAt 또한 엔티티 어노테이션에서 자동 적용되므로 삭제

* [REFACT] 변수명 수정

* [REFACT] SelfDiagnosis 엔티티 내 @SuperBuilder -> @builder 로 수정 (상속 없음)

* [REFACT] BaseEntity에 빌더 패턴 필요 없음

---------

Co-authored-by: 99hyuk <yh99cho1@gmail.com>

* [CICD] Spring Boot Healthcheck 활성화 및 docker-compose 기반 자동 배포 구축, CORS 설정 (#43) (#44)

* [FEAT] spring actuator 의존성 주입

* [FEAT] 배포용 yml에 actuator 헬스체크 경로 추가

* [REFACT] 배포 CD 워크플로우 수정 (compose.yml, .env 파일 생성, 도커 재시작)

* [REFACT] curl localhost로 작동하도록 수정

* [REFACT] CORS 설정 원복 (필터 삭제, 모든 접속 허가, 로그인/회원가입을 제외하곤 인증된 사용자만 접근 가능)

* [REFACT] cd_workflow 파일 수정

---------

Co-authored-by: doyonkim <111870376+kdy2224@users.noreply.github.com>

* [REFACT] cd_workflow 파일 수정

* [REFACT] cd_workflow 파일 수정

* [REFACT] cd_workflow 파일 수정

* [REFACT] DockerFile 이미지에 curl 설치

* [REFACT] cd_workflow 파일 헬스체크 시간 확대

* [REFACT] dockerfile 자바 이미지 변경

* [REFACT] SecurityConfig에 인증되지 않은 사용자도 healthcheck에 접근할 수 있또록 수정

* [REFACT] 스웨거도 접속 가능하도록 수정

* [REFACT] CORS 설정 수정

* [REFACT] 도커파일 헬스체크 지연시간 추가

* [REFACT] cd_workflow 헬스체크 시간 추가

* [TEST] 테스트 위해 인증 로직 임시 수정

* [TEST] 테스트 위해 SecurityConfig 임시 수정 (최신 브랜치 기준)

* [REFACT] Discord 알림 폴링 시간 100초 -> 150초로 증가

* 배포 prod.yml ddl-auto: create -> update로 수정

* [REFACT] docker HealthCheck 개선 (작동 시간 증가)

* [REFACT] 배포 후 빌드 과정에 캐시 사용하지 않도록 수정

* [REFACT] 도커파일 설정에서 어떤 .jar 파일을 빌드할 지 명확히 설정

* [REFACT] cd 배포 파일에서 도커 이미지 정리, 도커 헬스체크 의존성 포함 여부 검증 로직 추가

* [FIX] localhost는 러너 기준으로 문제가 있어 EC2 기준으로 디스코드 배포 알림 URL 수정

* [FIX] Authorization 헤더 노출 가능하도록 수정, 쿠키 자격 증명 비활성화되도록 CORS 수정

* [FIX] SelfDiagnosis 조회 시 createdAt null 방어 처리 및 Update 메소드 리턴 제거

* [REFACT] SpringSecurity 내  basic 인증 사용하지 않도록 설정, 세션 사용하지 않도록 설정

---------

Co-authored-by: doyonkim <111870376+kdy2224@users.noreply.github.com>
99hyuk added a commit that referenced this pull request Apr 30, 2025
…compose 도입 버전 배포 (#49)

* [BUG] 배포 상황이 안정된 브랜치로 복구, 도커 설정 관련 수정, Authorization 헤더 노출 CORS 수정 (#47)

* [CICD] release 배포 (#46)

* [FIX] 인증 로직 개선 및 JWT 직렬화 방식 수정 (#38)

* [FIX] principal을 UserDetails 객체로 변경하고 credentials은 인증 후 null 처리

* [FIX] JWT claims를 단순 타입으로 직렬화하도록 변경

* [REFACT] JWT claims 각주 설명 추가

* [FEAT] 건강상태 CRUD api 구현 (#35)

수고하셨습니다.

* [REFACT] 도메인 연관관계 개선 및 엔티티 구조 리팩토링 (복합키 제거, 연관명칭 통일, 생명주기 관리 명확화) (#39)  (#40)

* [REFACT] Hospital orphanRemoval 설정, HospitalDepartment 복합키 제거 후 단일 기본키로 변경

* [REFACT] 자가진단증상 엔티티 클래스명 변경, 복합키 삭제 후 단일 기본키로 수정

* [REFACT] 도메인 클래스명 변경  VisitHistory -> MedicalRecord

* [REFACT] 도메인 클래스명 변경 MedicalHistory -> HealthStatus, HealthStatus와 User를 1대1 관계로 설정

* [REFACT] 번역테이블 번역필드 추가, summary 테이블 기본 PK로 수정 및 연관관계 수정, Nation 테이블 국가 코드 필드 추가, privateInformation 테이블 비활성화

* [REFACT] 언어 CRUD 관련 컨트롤러, 로직 비활성화 (DB로 직접 관리)

* [FIX] MedicalRecord, Summary 테이블 간 연관 필드 매핑 수정

* [FEAT] 의료기록 CRUD api 구현 (#33)

* [FEAT] 의료기록 CRUD api 구현

* [REFACT] 의료기록 api 리팩토링

* [REFACT] 의료기록 api 리팩토링

* [REFACT] 의료기록 converter 수정

* [REFACT] 리뷰 반영_1

* [REFACT] 의료기록 api 피드백 반영

* [REFACT] Summary 테이블의 contents 필드 삭제

* [CHORE] VisitHistoryController 에 스웨거 세부 설정 추가

* [CHORE] 리뷰/피드백 반영

* [REFACT] visitHistoryService 의 visit history 조회 쿼리메서드 변경

* [CHORE] DepartmentRepository, HospitalRepository 삭제

* [CHORE] visitHistory -> medicalRecord(이름변경) 에 따른 수정사항 수정

* [CHORE] 건강상태 테이블명 변경 이후 수정사항 수정 (#42)

* [FEAT] 건강상태 CRUD api 구현

* [REFACT] 건강상태 api 리팩토링

* [REFACT] 건강상태 converter 수정

* [REFACT] 건강상태 api 피드백 반영

* [REFACT] @userid 로 변경

* [CHORE] MedicalHistoryController 에 스웨거 세부 설정 추가

* [CHORE] 리뷰/피드백 반영

* [REFACT] MedicalHistoryService 의 midecal history 조회 쿼리 메서드 변경

* [CHORE] MedicalHistory -> HealthStatus(테이블명 변경) 에 따른 수정사항 수정

* [REFACT] 건강상태 기록이 유저 한 명당 하나씩만 보유할 수 있으므로 모든 기록을 조회하는 관련 로직들 주석 처리

* [REFACT] 유저 <-> 건강상태 단방향으로 변경

* [REFACT] 사용하지 않는 로직 주석화

---------

Co-authored-by: 99hyuk <yh99cho1@gmail.com>

* [FEAT] 자가진단표 api 구현 (#37)

* [FEAT] 자가진단표 api 구현

* [REFACT] 자가진단표 api 리팩토링

* [CHORE] 오타 수정

* [REFACT] user api 리팩토링

* [REFACT] 증상 목록 조회 api 수정

* [REFACT] 자가진단표 api 컨버터 수정

* [CHORE] 사소한 코드 수정

* [TEMP] 임시저장

* [REFACT] 자가진단표 api 피드백 반영

* [REFACT] @userid 로 변경

* [CHORE] SelfDiagnosisController, SymptomController 에 스웨거 세부 설정 추가

* [CHORE] 리뷰/피드백 반영

* [CHORE] 불필요한 코드, 파일 삭제

* [REFACT] selfDiagnosisService 의 self diagnosis 조회 쿼리 메서드 변경

* [REFACT] 피드백/리뷰 반영
SelfDiagnosisConverter 의 많은 메서드에 포함된 로직을 새 메서드(SymptomListForResponseDto) 로 뺌.
UserController, UserService 의 사용자 삭제 api 삭제 및 사용자 비활성화 api 의 method 를 patch->delete 로 변경

* [CHORE] 피드백/리뷰 반영
1. SymptomConverter의 메서드명 변경(2 삭제)
2. 불필요한 user dto 모두 삭제

* [CHORE] SelfSymptom -> DiagnosisSymptom(이름변경)에 따른 수정사항 수정

* [CHORE] SelfDiagnosisConverter 일부 메서드 이름 수정

* [REFACT] 자가진단 수정하는 경우 tobuilder에서 user값을 받을 필요 없음, createAt 또한 엔티티 어노테이션에서 자동 적용되므로 삭제

* [REFACT] 변수명 수정

* [REFACT] SelfDiagnosis 엔티티 내 @SuperBuilder -> @builder 로 수정 (상속 없음)

* [REFACT] BaseEntity에 빌더 패턴 필요 없음

---------

Co-authored-by: 99hyuk <yh99cho1@gmail.com>

* [CICD] Spring Boot Healthcheck 활성화 및 docker-compose 기반 자동 배포 구축, CORS 설정 (#43) (#44)

* [FEAT] spring actuator 의존성 주입

* [FEAT] 배포용 yml에 actuator 헬스체크 경로 추가

* [REFACT] 배포 CD 워크플로우 수정 (compose.yml, .env 파일 생성, 도커 재시작)

* [REFACT] curl localhost로 작동하도록 수정

* [REFACT] CORS 설정 원복 (필터 삭제, 모든 접속 허가, 로그인/회원가입을 제외하곤 인증된 사용자만 접근 가능)

* [REFACT] cd_workflow 파일 수정

---------

Co-authored-by: doyonkim <111870376+kdy2224@users.noreply.github.com>

* [REFACT] cd_workflow 파일 수정

* [REFACT] cd_workflow 파일 수정

* [REFACT] cd_workflow 파일 수정

* [REFACT] DockerFile 이미지에 curl 설치

* [REFACT] cd_workflow 파일 헬스체크 시간 확대

* [REFACT] dockerfile 자바 이미지 변경

* [REFACT] SecurityConfig에 인증되지 않은 사용자도 healthcheck에 접근할 수 있또록 수정

* [REFACT] 스웨거도 접속 가능하도록 수정

* [REFACT] CORS 설정 수정

* [REFACT] 도커파일 헬스체크 지연시간 추가

* [REFACT] cd_workflow 헬스체크 시간 추가

* [TEST] 테스트 위해 인증 로직 임시 수정

* [TEST] 테스트 위해 SecurityConfig 임시 수정 (최신 브랜치 기준)

* [REFACT] Discord 알림 폴링 시간 100초 -> 150초로 증가

* 배포 prod.yml ddl-auto: create -> update로 수정

* [REFACT] docker HealthCheck 개선 (작동 시간 증가)

* [REFACT] 배포 후 빌드 과정에 캐시 사용하지 않도록 수정

* [REFACT] 도커파일 설정에서 어떤 .jar 파일을 빌드할 지 명확히 설정

* [REFACT] cd 배포 파일에서 도커 이미지 정리, 도커 헬스체크 의존성 포함 여부 검증 로직 추가

* [FIX] localhost는 러너 기준으로 문제가 있어 EC2 기준으로 디스코드 배포 알림 URL 수정

* [FIX] Authorization 헤더 노출 가능하도록 수정, 쿠키 자격 증명 비활성화되도록 CORS 수정

* [FIX] SelfDiagnosis 조회 시 createdAt null 방어 처리 및 Update 메소드 리턴 제거

* [REFACT] SpringSecurity 내  basic 인증 사용하지 않도록 설정, 세션 사용하지 않도록 설정

---------

Co-authored-by: doyonkim <111870376+kdy2224@users.noreply.github.com>

* [FEAT] 사용자 언어 설정 및 조회 API 구현, 회원가입 시 언어, 국적 코드로 입력 받도록 수정 (#21)

* [FEAT] 유저 언어 설정, 조회 컨트롤러 작성

* [FEAT] 데이터베이스 내 모든 언어 조회 API 구현

* [FEAT] 데이터베이스 내 모든 국가 조회 API 구현

* [FEAT] 유저 언어 설정 변경 및 조희 API 구현

* [FEAT] 유저 국적 설정 및 조회 API 구현

* [REFACT] 회원가입 시 국적, 언어 ID가 아닌 Code로 가입하도록 수정

* [CHORE] 국가, 언어 필드 유니크 제약조건 추가, 회원가입 스웨거 기본값(국적, 언어) 수정

* [CHORE] 불필요한 언어 dto 삭제

---------

Co-authored-by: doyonkim <111870376+kdy2224@users.noreply.github.com>
99hyuk added a commit that referenced this pull request May 8, 2025
* [BUG] 배포 상황이 안정된 브랜치로 복구, 도커 설정 관련 수정, Authorization 헤더 노출 CORS 수정 (#47)

* [CICD] release 배포 (#46)

* [FIX] 인증 로직 개선 및 JWT 직렬화 방식 수정 (#38)

* [FIX] principal을 UserDetails 객체로 변경하고 credentials은 인증 후 null 처리

* [FIX] JWT claims를 단순 타입으로 직렬화하도록 변경

* [REFACT] JWT claims 각주 설명 추가

* [FEAT] 건강상태 CRUD api 구현 (#35)

수고하셨습니다.

* [REFACT] 도메인 연관관계 개선 및 엔티티 구조 리팩토링 (복합키 제거, 연관명칭 통일, 생명주기 관리 명확화) (#39)  (#40)

* [REFACT] Hospital orphanRemoval 설정, HospitalDepartment 복합키 제거 후 단일 기본키로 변경

* [REFACT] 자가진단증상 엔티티 클래스명 변경, 복합키 삭제 후 단일 기본키로 수정

* [REFACT] 도메인 클래스명 변경  VisitHistory -> MedicalRecord

* [REFACT] 도메인 클래스명 변경 MedicalHistory -> HealthStatus, HealthStatus와 User를 1대1 관계로 설정

* [REFACT] 번역테이블 번역필드 추가, summary 테이블 기본 PK로 수정 및 연관관계 수정, Nation 테이블 국가 코드 필드 추가, privateInformation 테이블 비활성화

* [REFACT] 언어 CRUD 관련 컨트롤러, 로직 비활성화 (DB로 직접 관리)

* [FIX] MedicalRecord, Summary 테이블 간 연관 필드 매핑 수정

* [FEAT] 의료기록 CRUD api 구현 (#33)

* [FEAT] 의료기록 CRUD api 구현

* [REFACT] 의료기록 api 리팩토링

* [REFACT] 의료기록 api 리팩토링

* [REFACT] 의료기록 converter 수정

* [REFACT] 리뷰 반영_1

* [REFACT] 의료기록 api 피드백 반영

* [REFACT] Summary 테이블의 contents 필드 삭제

* [CHORE] VisitHistoryController 에 스웨거 세부 설정 추가

* [CHORE] 리뷰/피드백 반영

* [REFACT] visitHistoryService 의 visit history 조회 쿼리메서드 변경

* [CHORE] DepartmentRepository, HospitalRepository 삭제

* [CHORE] visitHistory -> medicalRecord(이름변경) 에 따른 수정사항 수정

* [CHORE] 건강상태 테이블명 변경 이후 수정사항 수정 (#42)

* [FEAT] 건강상태 CRUD api 구현

* [REFACT] 건강상태 api 리팩토링

* [REFACT] 건강상태 converter 수정

* [REFACT] 건강상태 api 피드백 반영

* [REFACT] @userid 로 변경

* [CHORE] MedicalHistoryController 에 스웨거 세부 설정 추가

* [CHORE] 리뷰/피드백 반영

* [REFACT] MedicalHistoryService 의 midecal history 조회 쿼리 메서드 변경

* [CHORE] MedicalHistory -> HealthStatus(테이블명 변경) 에 따른 수정사항 수정

* [REFACT] 건강상태 기록이 유저 한 명당 하나씩만 보유할 수 있으므로 모든 기록을 조회하는 관련 로직들 주석 처리

* [REFACT] 유저 <-> 건강상태 단방향으로 변경

* [REFACT] 사용하지 않는 로직 주석화

---------

Co-authored-by: 99hyuk <yh99cho1@gmail.com>

* [FEAT] 자가진단표 api 구현 (#37)

* [FEAT] 자가진단표 api 구현

* [REFACT] 자가진단표 api 리팩토링

* [CHORE] 오타 수정

* [REFACT] user api 리팩토링

* [REFACT] 증상 목록 조회 api 수정

* [REFACT] 자가진단표 api 컨버터 수정

* [CHORE] 사소한 코드 수정

* [TEMP] 임시저장

* [REFACT] 자가진단표 api 피드백 반영

* [REFACT] @userid 로 변경

* [CHORE] SelfDiagnosisController, SymptomController 에 스웨거 세부 설정 추가

* [CHORE] 리뷰/피드백 반영

* [CHORE] 불필요한 코드, 파일 삭제

* [REFACT] selfDiagnosisService 의 self diagnosis 조회 쿼리 메서드 변경

* [REFACT] 피드백/리뷰 반영
SelfDiagnosisConverter 의 많은 메서드에 포함된 로직을 새 메서드(SymptomListForResponseDto) 로 뺌.
UserController, UserService 의 사용자 삭제 api 삭제 및 사용자 비활성화 api 의 method 를 patch->delete 로 변경

* [CHORE] 피드백/리뷰 반영
1. SymptomConverter의 메서드명 변경(2 삭제)
2. 불필요한 user dto 모두 삭제

* [CHORE] SelfSymptom -> DiagnosisSymptom(이름변경)에 따른 수정사항 수정

* [CHORE] SelfDiagnosisConverter 일부 메서드 이름 수정

* [REFACT] 자가진단 수정하는 경우 tobuilder에서 user값을 받을 필요 없음, createAt 또한 엔티티 어노테이션에서 자동 적용되므로 삭제

* [REFACT] 변수명 수정

* [REFACT] SelfDiagnosis 엔티티 내 @SuperBuilder -> @builder 로 수정 (상속 없음)

* [REFACT] BaseEntity에 빌더 패턴 필요 없음

---------

Co-authored-by: 99hyuk <yh99cho1@gmail.com>

* [CICD] Spring Boot Healthcheck 활성화 및 docker-compose 기반 자동 배포 구축, CORS 설정 (#43) (#44)

* [FEAT] spring actuator 의존성 주입

* [FEAT] 배포용 yml에 actuator 헬스체크 경로 추가

* [REFACT] 배포 CD 워크플로우 수정 (compose.yml, .env 파일 생성, 도커 재시작)

* [REFACT] curl localhost로 작동하도록 수정

* [REFACT] CORS 설정 원복 (필터 삭제, 모든 접속 허가, 로그인/회원가입을 제외하곤 인증된 사용자만 접근 가능)

* [REFACT] cd_workflow 파일 수정

---------

Co-authored-by: doyonkim <111870376+kdy2224@users.noreply.github.com>

* [REFACT] cd_workflow 파일 수정

* [REFACT] cd_workflow 파일 수정

* [REFACT] cd_workflow 파일 수정

* [REFACT] DockerFile 이미지에 curl 설치

* [REFACT] cd_workflow 파일 헬스체크 시간 확대

* [REFACT] dockerfile 자바 이미지 변경

* [REFACT] SecurityConfig에 인증되지 않은 사용자도 healthcheck에 접근할 수 있또록 수정

* [REFACT] 스웨거도 접속 가능하도록 수정

* [REFACT] CORS 설정 수정

* [REFACT] 도커파일 헬스체크 지연시간 추가

* [REFACT] cd_workflow 헬스체크 시간 추가

* [TEST] 테스트 위해 인증 로직 임시 수정

* [TEST] 테스트 위해 SecurityConfig 임시 수정 (최신 브랜치 기준)

* [REFACT] Discord 알림 폴링 시간 100초 -> 150초로 증가

* 배포 prod.yml ddl-auto: create -> update로 수정

* [REFACT] docker HealthCheck 개선 (작동 시간 증가)

* [REFACT] 배포 후 빌드 과정에 캐시 사용하지 않도록 수정

* [REFACT] 도커파일 설정에서 어떤 .jar 파일을 빌드할 지 명확히 설정

* [REFACT] cd 배포 파일에서 도커 이미지 정리, 도커 헬스체크 의존성 포함 여부 검증 로직 추가

* [FIX] localhost는 러너 기준으로 문제가 있어 EC2 기준으로 디스코드 배포 알림 URL 수정

* [FIX] Authorization 헤더 노출 가능하도록 수정, 쿠키 자격 증명 비활성화되도록 CORS 수정

* [FIX] SelfDiagnosis 조회 시 createdAt null 방어 처리 및 Update 메소드 리턴 제거

* [REFACT] SpringSecurity 내  basic 인증 사용하지 않도록 설정, 세션 사용하지 않도록 설정

---------

Co-authored-by: doyonkim <111870376+kdy2224@users.noreply.github.com>

* [FEAT] 사용자 언어 설정 및 조회 API 구현, 회원가입 시 언어, 국적 코드로 입력 받도록 수정 (#21)

* [FEAT] 유저 언어 설정, 조회 컨트롤러 작성

* [FEAT] 데이터베이스 내 모든 언어 조회 API 구현

* [FEAT] 데이터베이스 내 모든 국가 조회 API 구현

* [FEAT] 유저 언어 설정 변경 및 조희 API 구현

* [FEAT] 유저 국적 설정 및 조회 API 구현

* [REFACT] 회원가입 시 국적, 언어 ID가 아닌 Code로 가입하도록 수정

* [CHORE] 국가, 언어 필드 유니크 제약조건 추가, 회원가입 스웨거 기본값(국적, 언어) 수정

* [CHORE] 불필요한 언어 dto 삭제

* [REFACT] 건강상태 api 수정 (#55)

-건강상태 조회, 수정 api 에서 healthStatusId 를 따로 받지 않도록 수정(HealthStatusController)
-건강상태 생성(POST) api 삭제 및 SignUpService 에 건강상태 생성 로직 추가

* [REFACT] 자가진단표 생성 api 오류처리 추가 (#54)

-자가진단표의 visitType 필드 입력값(enum) 예외 처리

* [FEAT] 마이페이지 api 구현 - profile 만 (#56)

* (테스트용 커밋)

* [FEAT] MypageController(만) 생성

* [FEAT] 마이페이지 profile 조회, 수정 api 구현

* [CHORE] 불필요한 dto 파일 삭제

* [CHORE] profile 수정 api 수정
-수정 요청시 국가, 언어를 code 로 받도록 dto(MypageProfileUpdateRequest) 수정

* [CHORE] MypageService 예외처리 코드 수정

---------

Co-authored-by: doyonkim <111870376+kdy2224@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

✨ feature 새로운 기능을 추가합니다

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[FEAT] 의료기록 api 구현

2 participants