Skip to content

Commit 63a379a

Browse files
committed
Merge branch 'feat/issue-13' into develop
2 parents c50aaf0 + eed7f55 commit 63a379a

File tree

13 files changed

+95
-67
lines changed

13 files changed

+95
-67
lines changed

api/src/main/java/com/mbtips/domain/fastfriend/controller/dto/request/FastFriendRequest.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,15 @@
11
package com.mbtips.domain.fastfriend.controller.dto.request;
22

33
import com.mbtips.fastfriend.entity.FastFriend;
4+
import jakarta.validation.constraints.Pattern;
45

56
public record FastFriendRequest(
6-
String EorI,
7-
String NorS,
8-
String TorF,
9-
String JorP,
7+
8+
@Pattern(
9+
regexp = "^(INTJ|INTP|ENTJ|ENTP|INFJ|INFP|ENFJ|ENFP|ISTJ|ISFJ|ESTJ|ESFJ|ISTP|ISFP|ESTP|ESFP)$",
10+
message = "유효하지 않은 mbti입니다. 16가지중 하나를 입력해주세요."
11+
)
12+
String mbti,
1013
String fastFriendName,
1114
int fastFriendAge,
1215
String fastFriendSex,
@@ -15,10 +18,7 @@ public record FastFriendRequest(
1518

1619
public FastFriend toEntity(FastFriendRequest request) {
1720
return FastFriend.builder()
18-
.EorI(request.EorI)
19-
.NorS(request.NorS)
20-
.TorF(request.TorF)
21-
.JorP(request.JorP)
21+
.mbti(request.mbti)
2222
.fastFriendName(request.fastFriendName)
2323
.fastFriendAge(request.fastFriendAge)
2424
.fastFriendSex(request.fastFriendSex)

api/src/main/java/com/mbtips/domain/fastfriend/controller/dto/response/FastFriendResponse.java

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,7 @@
44

55
public record FastFriendResponse (
66
Long fastFriendId,
7-
String EorI,
8-
String NorS,
9-
String TorF,
10-
String JorP,
7+
String mbti,
118
String fastFriendName,
129
int fastFriendAge,
1310
String fastFriendSex,
@@ -17,10 +14,7 @@ public record FastFriendResponse (
1714
public static FastFriendResponse from(FastFriend saveFriend) {
1815
return new FastFriendResponse(
1916
saveFriend.getFastFriendId(),
20-
saveFriend.getEorI(),
21-
saveFriend.getNorS(),
22-
saveFriend.getTorF(),
23-
saveFriend.getJorP(),
17+
saveFriend.getMbti(),
2418
saveFriend.getFastFriendName(),
2519
saveFriend.getFastFriendAge(),
2620
saveFriend.getFastFriendSex(),

api/src/main/java/com/mbtips/domain/virtualfriend/VirtualFriendController.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,13 +39,11 @@ public ApiResponse<List<VirtualFriendResponse>> getVirtualFriends(@LoginUser Use
3939
@Operation(summary = "가상친구 생성", description = "가상친구 생성을 요청하며, 채팅방이 생성됩니다.")
4040
public ApiResponse<VirtualFriendResponse> createVirtualFriend(@Valid @RequestBody VirtualFriendRequest virtualFriendRequest,
4141
@LoginUser User user){
42+
log.debug("virtualFriendReuqest : {}", virtualFriendRequest);
4243
VirtualFriendResponse result = virtualFriendService.createVirtualFriend(virtualFriendRequest, user.getUserId());
4344
return ApiResponse.success(result);
4445
}
4546

46-
/**
47-
*
48-
*/
4947
@DeleteMapping("/{friendId}")
5048
@Operation(summary = "가상친구 삭제", description = "가상친구가 삭제되며, 채팅방이 삭제됩니다.")
5149
public ApiResponse<Void> deleteVirtualFriend(@PathVariable Long friendId, @LoginUser User user){

api/src/main/java/com/mbtips/domain/virtualfriend/VirtualFriendService.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,15 @@
88
import com.mbtips.domain.virtualfriend.response.VirtualFriendResponse;
99
import com.mbtips.user.application.service.UserService;
1010
import com.mbtips.user.entity.UserEntity;
11+
import com.mbtips.virtualfriend.InterestRepository;
1112
import com.mbtips.virtualfriend.VirtualFriendRepository;
13+
import com.mbtips.virtualfriend.entity.Interest;
14+
import com.mbtips.virtualfriend.entity.InterestId;
1215
import com.mbtips.virtualfriend.entity.VirtualFriend;
1316
import lombok.RequiredArgsConstructor;
1417
import org.springframework.stereotype.Service;
1518

19+
import java.util.ArrayList;
1620
import java.util.List;
1721
import java.util.stream.Collectors;
1822

@@ -23,6 +27,7 @@ public class VirtualFriendService {
2327
private final VirtualFriendRepository virtualFriendRepository;
2428
private final ConversationService conversationService;
2529
private final UserService userService;
30+
private final InterestRepository interestRepository;
2631

2732
public List<VirtualFriendResponse> getVirtualFriendsByUserId(String userId) {
2833
List<Object[]> friends = virtualFriendRepository.findvirtualFriendAndConversation(userId);
@@ -45,6 +50,15 @@ public VirtualFriendResponse createVirtualFriend(VirtualFriendRequest req, Strin
4550
VirtualFriend friend = VirtualFriendRequest.toEntity(req, userEntity);
4651
VirtualFriend saveFriend = virtualFriendRepository.save(friend);
4752

53+
List<Interest> interests = new ArrayList<>();
54+
for(String topic : req.interests()){
55+
interests.add(Interest.builder()
56+
.virtualFriend(saveFriend)
57+
.interestId(new InterestId(saveFriend.getVirtualFriendId(), topic))
58+
.build());
59+
}
60+
interestRepository.saveAll(interests);
61+
4862
Conversation conversation = conversationService.createConversation(friend, userEntity);
4963

5064
VirtualFriendResponse result = VirtualFriendResponse.from(saveFriend, conversation.getConversationId());

api/src/main/java/com/mbtips/domain/virtualfriend/request/VirtualFriendRequest.java

Lines changed: 13 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,19 @@
11
package com.mbtips.domain.virtualfriend.request;
22

3+
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
34
import com.mbtips.user.entity.UserEntity;
45
import com.mbtips.virtualfriend.entity.VirtualFriend;
56
import jakarta.validation.constraints.Max;
67
import jakarta.validation.constraints.Min;
78
import jakarta.validation.constraints.NotBlank;
89
import jakarta.validation.constraints.Pattern;
910

11+
import java.util.List;
12+
13+
@JsonIgnoreProperties(ignoreUnknown = true)
1014
public record VirtualFriendRequest(
11-
Long userId,
1215

13-
String userName,
16+
String friendName,
1417

1518
@Min(value = 1, message = "나이는 1 이상이어야 합니다.")
1619
@Max(value = 100, message = "나이는 100 이하이어야 합니다.")
@@ -22,30 +25,22 @@ public record VirtualFriendRequest(
2225
@Pattern(regexp = "M|F", message = "성별은 M 또는 F만 가능합니다.")
2326
String sex,
2427

25-
@Pattern(regexp = "E|I", message = "E 또는 I중 하나이어야 합니다.")
26-
String EorI,
27-
28-
@Pattern(regexp = "N|S", message = "N 또는 S중 하나이어야 합니다.")
29-
String NorS,
30-
31-
@Pattern(regexp = "T|F", message = "T 또는 F중 하나이어야 합니다.")
32-
String TorF,
33-
34-
@Pattern(regexp = "J|P", message = "J 또는 P중 하나이어야 합니다.")
35-
String JorP
28+
@Pattern(
29+
regexp = "^(INTJ|INTP|ENTJ|ENTP|INFJ|INFP|ENFJ|ENFP|ISTJ|ISFJ|ESTJ|ESFJ|ISTP|ISFP|ESTP|ESFP)$",
30+
message = "유효하지 않은 mbti입니다. 16가지중 하나를 입력해주세요."
31+
)
32+
String mbti,
3633

34+
List<String> interests
3735
){
3836
public static VirtualFriend toEntity(VirtualFriendRequest req, UserEntity userEntity) {
3937
return VirtualFriend.builder()
4038
.user(userEntity)
41-
.virtualFriendName(req.userName)
39+
.virtualFriendName(req.friendName)
4240
.virtualFriendAge(req.age)
4341
.virtualFriendRelationship(req.relationship)
4442
.virtualFriendSex(req.sex)
45-
.EorI(req.EorI)
46-
.JorP(req.JorP)
47-
.NorS(req.NorS)
48-
.TorF(req.TorF)
43+
.mbti(req.mbti)
4944
.build();
5045

5146
}

api/src/main/java/com/mbtips/domain/virtualfriend/response/VirtualFriendResponse.java

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,7 @@
55
public record VirtualFriendResponse (
66
Long virtualFriendId,
77
Long conversationId,
8-
String EorI,
9-
String NorS,
10-
String TorF,
11-
String JorP,
8+
String mbti,
129
String virtualFriendName,
1310
int virtualFriendAge,
1411
String virtualFriendSex,
@@ -21,14 +18,12 @@ public static VirtualFriendResponse from(VirtualFriend friend ,Long conversation
2118
return new VirtualFriendResponse(
2219
friend.getVirtualFriendId(),
2320
conversationId,
24-
friend.getEorI(),
25-
friend.getNorS(),
26-
friend.getTorF(),
27-
friend.getJorP(),
21+
friend.getMbti(),
2822
friend.getVirtualFriendName(),
2923
friend.getVirtualFriendAge(),
3024
friend.getVirtualFriendSex(),
3125
friend.getVirtualFriendRelationship()
3226
);
3327
}
28+
3429
}

external/src/main/java/com/mbtips/kakao/dto/GetKakaoUserInfoResponseDto.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.mbtips.kakao.dto;
22

33
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
4+
import lombok.ToString;
45

56
@JsonIgnoreProperties(ignoreUnknown = true)
67
public record GetKakaoUserInfoResponseDto(

repository/src/main/java/com/mbtips/fastfriend/entity/FastFriend.java

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -15,17 +15,8 @@ public class FastFriend {
1515
@GeneratedValue(strategy = GenerationType.IDENTITY)
1616
private Long fastFriendId;
1717

18-
@Column(nullable = false)
19-
private String EorI;
20-
21-
@Column(nullable = false)
22-
private String NorS;
23-
24-
@Column(nullable = false)
25-
private String TorF;
26-
27-
@Column(nullable = false)
28-
private String JorP;
18+
@Column
19+
private String mbti;
2920

3021
@Column(length = 20)
3122
private String fastFriendName;
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
package com.mbtips.virtualfriend;
2+
3+
import com.mbtips.virtualfriend.entity.Interest;
4+
import com.mbtips.virtualfriend.entity.InterestId;
5+
import org.springframework.data.jpa.repository.JpaRepository;
6+
7+
public interface InterestRepository extends JpaRepository<Interest, InterestId> {
8+
}

repository/src/main/java/com/mbtips/virtualfriend/VirtualFriendRepository.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,5 +22,5 @@ public interface VirtualFriendRepository extends JpaRepository<VirtualFriend, Lo
2222

2323

2424
@Query("select v from VirtualFriend v where v.virtualFriendId = :friendId and v.user = :user")
25-
Optional<VirtualFriend> findByFriendId(Long friendId, UserEntity userEntity);
25+
Optional<VirtualFriend> findByFriendId(Long friendId, UserEntity user);
2626
}

0 commit comments

Comments
 (0)