11package umc .wegg .converter ;
22
33import lombok .RequiredArgsConstructor ;
4+ import umc .wegg .domain .ContactFriend ;
45import umc .wegg .domain .Setting ;
56import umc .wegg .domain .User ;
67import umc .wegg .domain .enums .AccountVisibility ;
910import umc .wegg .dto .UserResponseDTO ;
1011
1112import java .time .LocalDateTime ;
13+ import java .util .ArrayList ;
1214import java .util .List ;
15+ import java .util .stream .Collectors ;
1316
1417@ RequiredArgsConstructor
1518public class UserConverter {
@@ -21,25 +24,25 @@ public static UserResponseDTO.UserJoinResultDTO toJoinResultDTO(User user){
2124 .build ();
2225 }
2326
24- public static UserResponseDTO .UserJoinResultDTO toJoinResultDTO (User user , List <UserResponseDTO .UserJoinResultDTO .ExistingUserDTO > existingUsers ){
27+ public static UserResponseDTO .UserJoinResultDTO toJoinResultDTO (User user , List <UserResponseDTO .UserJoinResultDTO .ContactFriendDto > contactFriends ){
2528 return UserResponseDTO .UserJoinResultDTO .builder ()
2629 .userId (user .getId ())
2730 .createdAt (LocalDateTime .now ())
2831 //연락처에 있는 유저 목록 추가
29- .existingUsers ( existingUsers )
32+ .contactFriends ( contactFriends )
3033 .build ();
3134 }
3235
33- public static UserResponseDTO .OAuth2UserJoinResultDTO toOAuth2JoinResultDTO (User user , List <UserResponseDTO .OAuth2UserJoinResultDTO .ExistingUserDTO > existingUsers ){
36+ public static UserResponseDTO .OAuth2UserJoinResultDTO toOAuth2JoinResultDTO (User user , List <UserResponseDTO .OAuth2UserJoinResultDTO .ContactFriendDto > contactFriends ){
3437 return UserResponseDTO .OAuth2UserJoinResultDTO .builder ()
3538 .userId (user .getId ())
3639 .createdAt (LocalDateTime .now ())
3740 //연락처에 있는 유저 목록 추가
38- .existingUsers ( existingUsers )
41+ .contactFriends ( contactFriends )
3942 .build ();
4043 }
4144
42- public static User toUser (UserRequestDTO .UserJoinDto request ){
45+ public static User toUser (UserRequestDTO .UserJoinDto request , List < UserResponseDTO . ContactFriendDTO > contactFriends ){
4346
4447 User user = User .builder ()
4548 .email (request .getEmail ())
@@ -76,10 +79,24 @@ public static User toUser(UserRequestDTO.UserJoinDto request){
7679 // 관계 설정
7780 user .setSetting (setting );
7881
82+ // ContactFriends 초기화
83+ if (contactFriends != null && !contactFriends .isEmpty ()) {
84+ List <ContactFriend > contactFriendList = contactFriends .stream ()
85+ .map (contactFriend -> ContactFriend .builder ()
86+ .user (user )
87+ .friend (contactFriend .getFriend ())
88+ .phoneNum (contactFriend .getPhone ()) // 기존 사용자의 전화번호 추가
89+ .isFollowing (false )
90+ .build ())
91+ .collect (Collectors .toList ());
92+
93+ user .setContactFriendList (contactFriendList );
94+ }
95+
7996 return user ;
8097 }
8198
82- public static User toOAuthUser (UserRequestDTO .OAuth2UserJoinDto request ){
99+ public static User toOAuthUser (UserRequestDTO .OAuth2UserJoinDto request , List < UserResponseDTO . ContactFriendDTO > contactFriends ){
83100
84101 User user = User .builder ()
85102 .accountId (request .getAccountId ())
@@ -118,6 +135,20 @@ public static User toOAuthUser(UserRequestDTO.OAuth2UserJoinDto request){
118135 // 관계 설정
119136 user .setSetting (setting );
120137
138+ // ContactFriends 초기화
139+ if (contactFriends != null && !contactFriends .isEmpty ()) {
140+ List <ContactFriend > contactFriendList = contactFriends .stream ()
141+ .map (contactFriend -> ContactFriend .builder ()
142+ .user (user )
143+ .friend (contactFriend .getFriend ())
144+ .phoneNum (contactFriend .getPhone ()) // 기존 사용자의 전화번호 추가
145+ .isFollowing (false )
146+ .build ())
147+ .collect (Collectors .toList ());
148+
149+ user .setContactFriendList (contactFriendList );
150+ }
151+
121152 return user ;
122153 }
123154
0 commit comments