업체 등록 (Master, Hub)
- 업체를 등록하기 위한 POST /api/company Controller 기능 구현.
- 응답 객체와 메시지, HttpStatus code를 같이 묶어서 응답할 수 있게 ApiResponseData 클래스 생성.
- 업체는 허브에 소속되어야 하므로 관리하는 Hub에서 업체를 생성할 수 있다.
특정 업체 조회 (All)
- 특정 업체를 조회하기 위해 GET /api/company/{companyId} Controller 기능 구현.
- deleted 상태가 아닌 업체를 조회할 수 있도록 허브 엔티티와 매핑한 Repository에 findByIdAndDeletedAtIsNull 메서드로 간단하게 구현.
업체 전체 조회 (All)
- 모든 업체를 조회하기 위해 GET /api/company Controller 기능 구현.
- 업체 정보는 자주 변경되지 않는 정보이기 때문에 여기도 Cache-Aside전략을 사용해서 조회 시간 단축 ( ex 93ms -> 23ms)
- 특정 허브 조회와 같이 Page로 된 데이터를 역직렬화 하지 못하는 오류가 발생해서 PageResponseDto를 사용해서 응답 객체를 구성했다.
업체 삭제 (Master, Hub)
- 업체를 삭제하기 위해 DELETE /api/company/{companyId} Controller 기능 구현.
- 삭제를 요청한 뒤, deletedBy를 삭제처리한 사용자의 이름으로 수정함 (실제로 데이터베이스에 정보가 삭제되지 않게 처리함.
업체 수정 (Master, Hub, Company)
- 업체의 정보를 수정하기 위해 PUT /api/company/{companyId} Controller 기능 구현.
- 수정에 성공하면, updatedBy를 수정처리한 사용자의 이름으로 수정함.
- 만약 Company 권한을 가진 사용자의 경우 본인의 업체만 수정 가능하도록 구현해야 했기에 FeignClient로 사용자의 데이터를 보관하고 있는 User 서비스에 해당 유저를 조회한 뒤, Company 권한을 갖고 있다면 수정할 수 있게 구현함.
'🔥 스파르타 TIL (프로젝트)' 카테고리의 다른 글
두 번째 프로젝트 기록하기 3 (0) | 2025.03.28 |
---|---|
두 번째 프로젝트 기록하기 1 (1) | 2025.03.22 |
NAVER Geocoding API 사용해서 위도, 경도 추가하기 (0) | 2025.03.19 |
Slack API 적용해서 사용자에게 DM 보내는 기능을 만들어보자 (0) | 2025.03.18 |
프로젝트 기록하기 3 (1) | 2025.02.20 |