Skip to content

Commit 469884f

Browse files
committed
feat(user): 사용자 기본 정보 업데이트 기능 추가
- UpdateBasicInfoUseCase 인터페이스 정의 - UpdateBasicInfoService 구현 - 사용자 공통 속성 업데이트 로직 추가 - 봉사자 및 센터 속성별 업데이트 로직 포함
1 parent 4224f40 commit 469884f

File tree

2 files changed

+71
-0
lines changed

2 files changed

+71
-0
lines changed
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
package com.somemore.user.service;
2+
3+
import com.somemore.center.domain.NEWCenter;
4+
import com.somemore.center.usecase.NEWCenterQueryUseCase;
5+
import com.somemore.domains.volunteer.domain.Gender;
6+
import com.somemore.user.domain.UserCommonAttribute;
7+
import com.somemore.user.dto.basicinfo.CenterBasicInfoRequestDto;
8+
import com.somemore.user.dto.basicinfo.CommonBasicInfoRequestDto;
9+
import com.somemore.user.dto.basicinfo.VolunteerBasicInfoRequestDto;
10+
import com.somemore.user.usecase.UpdateBasicInfoUseCase;
11+
import com.somemore.user.usecase.UserQueryUseCase;
12+
import com.somemore.volunteer.domain.NEWVolunteer;
13+
import com.somemore.volunteer.usecase.NEWVolunteerQueryUseCase;
14+
import lombok.RequiredArgsConstructor;
15+
import lombok.extern.slf4j.Slf4j;
16+
import org.springframework.stereotype.Service;
17+
import org.springframework.transaction.annotation.Transactional;
18+
19+
import java.util.UUID;
20+
21+
@Service
22+
@Transactional
23+
@Slf4j
24+
@RequiredArgsConstructor
25+
public class UpdateBasicInfoService implements UpdateBasicInfoUseCase {
26+
27+
private final UserQueryUseCase userQueryUseCase;
28+
private final NEWVolunteerQueryUseCase volunteerQueryUseCase;
29+
private final NEWCenterQueryUseCase centerQueryUseCase;
30+
31+
@Override
32+
public void update(UUID userId, UUID roleId, VolunteerBasicInfoRequestDto volunteerBasicInfoRequestDto) {
33+
updateCommonAttribute(userId, volunteerBasicInfoRequestDto.commonBasicInfo());
34+
updateVolunteerAttribute(userId, volunteerBasicInfoRequestDto);
35+
}
36+
37+
@Override
38+
public void update(UUID userId, UUID roleId, CenterBasicInfoRequestDto centerBasicInfoRequestDto) {
39+
updateCommonAttribute(userId, centerBasicInfoRequestDto.commonBasicInfo());
40+
updateCenterAttribute(userId, centerBasicInfoRequestDto);
41+
}
42+
43+
private void updateCommonAttribute(UUID userId, CommonBasicInfoRequestDto commonBasicInfoRequestDto) {
44+
UserCommonAttribute commonAttribute = userQueryUseCase.getCommonAttributeByUserId(userId);
45+
commonAttribute.update(commonBasicInfoRequestDto);
46+
}
47+
48+
private void updateVolunteerAttribute(UUID userId, VolunteerBasicInfoRequestDto volunteerBasicInfoRequestDto) {
49+
NEWVolunteer volunteer = volunteerQueryUseCase.getByUserId(userId);
50+
volunteer.update(volunteerBasicInfoRequestDto.nickname());
51+
volunteer.update(Gender.from(volunteerBasicInfoRequestDto.gender()));
52+
}
53+
54+
private void updateCenterAttribute(UUID userId, CenterBasicInfoRequestDto centerBasicInfoRequestDto) {
55+
NEWCenter center = centerQueryUseCase.getByUserId(userId);
56+
center.update(centerBasicInfoRequestDto.homepageUrl());
57+
}
58+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package com.somemore.user.usecase;
2+
3+
import com.somemore.user.dto.basicinfo.CenterBasicInfoRequestDto;
4+
import com.somemore.user.dto.basicinfo.VolunteerBasicInfoRequestDto;
5+
6+
import java.util.UUID;
7+
8+
public interface UpdateBasicInfoUseCase {
9+
10+
void update(UUID userId, UUID roleId, VolunteerBasicInfoRequestDto volunteerBasicInfoRequestDto);
11+
12+
void update(UUID userId, UUID roleId, CenterBasicInfoRequestDto centerBasicInfoRequestDto);
13+
}

0 commit comments

Comments
 (0)