Skip to content

Commit af1543e

Browse files
committed
feat : 빠른친구 대화 로그 기록하도록 코드 변경
1 parent 4d43345 commit af1543e

File tree

6 files changed

+47
-4
lines changed

6 files changed

+47
-4
lines changed

api/src/main/java/com/mbtips/domain/fastfriend/controller/FastFriendController.java

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,12 @@
44
import com.mbtips.domain.fastfriend.controller.dto.request.FastFriendMessageRequest;
55
import com.mbtips.domain.fastfriend.controller.dto.request.FastFriendRequest;
66
import com.mbtips.domain.fastfriend.service.FastFriendService;
7+
import com.mbtips.domain.message.dto.request.CreateMessageRequestDto;
8+
import com.mbtips.domain.user.User;
9+
import com.mbtips.domain.virtualfriend.VirtualFriendService;
10+
import com.mbtips.domain.virtualfriend.request.VirtualFriendRequest;
11+
import com.mbtips.domain.virtualfriend.response.VirtualFriendResponse;
12+
import com.mbtips.message.application.manager.MessageManager;
713
import io.swagger.v3.oas.annotations.Operation;
814
import io.swagger.v3.oas.annotations.security.SecurityRequirements;
915
import jakarta.validation.Valid;
@@ -17,19 +23,26 @@
1723
public class FastFriendController {
1824

1925
private final FastFriendService fastFriendService;
26+
private final VirtualFriendService virtualFriendService;
27+
private final MessageManager manager;
2028

2129
@PostMapping
2230
@Operation(summary = "빠른대화 생성", description = "빠른 대화 생성을 요청한 후 가상친구Id를 반환받습니다.")
2331
public ApiResponse<Long> createFastFriendRequest(@Valid @RequestBody FastFriendRequest fastFriendRequest){
24-
Long fastFriendId = fastFriendService.createFastFriend(fastFriendRequest);
32+
VirtualFriendRequest request = VirtualFriendRequest.from(fastFriendRequest);
33+
User user = new User("admin");
34+
VirtualFriendResponse result = virtualFriendService.createVirtualFriend(request, user, "fast");
35+
Long fastFriendId = result.virtualFriendId();
2536
return ApiResponse.success(fastFriendId);
2637
}
2738

2839
@PostMapping("/message")
2940
@Operation(summary = "빠른대화 메시지 요청", description = "빠른 대화 친구에게 메시지를 보내고 응답을 받습니다.")
3041
public ApiResponse<String> fastFriendMessageRequest(@RequestBody FastFriendMessageRequest request) {
42+
User user = new User("admin");
3143

32-
String result = fastFriendService.messageRequest(request);
44+
CreateMessageRequestDto dto = virtualFriendService.createMessageRequestDto(request);
45+
String result = manager.sendMessage(user, dto);
3346
return ApiResponse.success(result);
3447
}
3548
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ public ApiResponse<VirtualFriendInfoResponse> getVirtualFriend(@LoginUser User u
4242
public ApiResponse<VirtualFriendResponse> createVirtualFriend(@Valid @RequestBody VirtualFriendRequest virtualFriendRequest,
4343
@LoginUser User user){
4444
log.debug("virtualFriendRequest : {}, {}", virtualFriendRequest, user);
45-
VirtualFriendResponse result = virtualFriendService.createVirtualFriend(virtualFriendRequest, user);
45+
VirtualFriendResponse result = virtualFriendService.createVirtualFriend(virtualFriendRequest, user, "virtual");
4646
return ApiResponse.success(result);
4747
}
4848

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

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
import com.mbtips.conversation.interfaces.ConversationRepository;
66
import com.mbtips.domain.conversation.service.ConversationService;
77
import com.mbtips.domain.converstation.Conversation;
8+
import com.mbtips.domain.fastfriend.controller.dto.request.FastFriendMessageRequest;
9+
import com.mbtips.domain.message.dto.request.CreateMessageRequestDto;
810
import com.mbtips.domain.user.User;
911
import com.mbtips.domain.virtualfriend.request.VirtualFriendRequest;
1012
import com.mbtips.domain.virtualfriend.response.VirtualFriendInfoResponse;
@@ -47,7 +49,7 @@ public List<VirtualFriendResponse> getVirtualFriendsByUserId(User user) {
4749
}
4850

4951
@Transactional
50-
public VirtualFriendResponse createVirtualFriend(VirtualFriendRequest req, User user) {
52+
public VirtualFriendResponse createVirtualFriend(VirtualFriendRequest req, User user, String type) {
5153

5254
VirtualFriend virtualFriend = VirtualFriend.builder()
5355
.user(user)
@@ -56,6 +58,7 @@ public VirtualFriendResponse createVirtualFriend(VirtualFriendRequest req, User
5658
.age(req.age())
5759
.gender(req.gender())
5860
.relationship(req.relationship())
61+
.friendType(type)
5962
.build();
6063

6164
VirtualFriend saveVirtualFriend = virtualFriendRepository.save(virtualFriend);
@@ -130,4 +133,9 @@ public VirtualFriendInfoResponse updateVirtualFriend(Long virtualFriendId, Virtu
130133
List<String> topics = interests.stream().map(Interest::getTopic).collect(Collectors.toList());
131134
return VirtualFriendInfoResponse.from(updateFriend, topics);
132135
}
136+
137+
public CreateMessageRequestDto createMessageRequestDto(FastFriendMessageRequest request) {
138+
Conversation conversation = conversationRepository.findById(request.fastFriendId());
139+
return new CreateMessageRequestDto(conversation.getConversationId(), request.content());
140+
}
133141
}

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

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.mbtips.domain.virtualfriend.request;
22

33
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
4+
import com.mbtips.domain.fastfriend.controller.dto.request.FastFriendRequest;
45
import com.mbtips.domain.virtualfriend.enums.Gender;
56
import com.mbtips.user.entity.UserEntity;
67
import com.mbtips.virtualfriend.entity.VirtualFriendEntity;
@@ -10,6 +11,7 @@
1011
import jakarta.validation.constraints.Pattern;
1112

1213
import java.util.List;
14+
import java.util.Optional;
1315

1416
@JsonIgnoreProperties(ignoreUnknown = true)
1517
public record VirtualFriendRequest(
@@ -30,6 +32,8 @@ public record VirtualFriendRequest(
3032

3133
List<String> interests
3234
){
35+
36+
3337
public static VirtualFriendEntity toEntity(VirtualFriendRequest req, UserEntity userEntity) {
3438
return VirtualFriendEntity.builder()
3539
.user(userEntity)
@@ -41,4 +45,15 @@ public static VirtualFriendEntity toEntity(VirtualFriendRequest req, UserEntity
4145
.build();
4246

4347
}
48+
49+
public static VirtualFriendRequest from(FastFriendRequest fastFriendRequest) {
50+
return new VirtualFriendRequest(
51+
Optional.ofNullable(fastFriendRequest.fastFriendName()).orElse("빠른친구"),
52+
Optional.ofNullable(fastFriendRequest.fastFriendAge()).orElse(20),
53+
Optional.ofNullable(fastFriendRequest.fastFriendRelationship()).orElse(null),
54+
Optional.ofNullable(fastFriendRequest.gender()).orElse(null),
55+
Optional.ofNullable(fastFriendRequest.mbti()).orElse(null),
56+
Optional.ofNullable(fastFriendRequest.interests()).orElse(null)
57+
);
58+
}
4459
}

core/src/main/java/com/mbtips/domain/virtualfriend/VirtualFriend.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,4 +22,6 @@ public class VirtualFriend {
2222
private Gender gender;
2323

2424
private String relationship;
25+
26+
private String friendType;
2527
}

repository/src/main/java/com/mbtips/virtualfriend/entity/VirtualFriendEntity.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,9 @@ public class VirtualFriendEntity {
4242
@Column(length = 20, nullable = false)
4343
private String virtualFriendRelationship;
4444

45+
@Column(length = 30, nullable = false)
46+
private String friendType;
47+
4548
public VirtualFriendEntity(VirtualFriend virtualFriend) {
4649
this.virtualFriendId = virtualFriend.getVirtualFriendId();
4750
this.user = new UserEntity(virtualFriend.getUser());
@@ -50,6 +53,7 @@ public VirtualFriendEntity(VirtualFriend virtualFriend) {
5053
this.virtualFriendAge = virtualFriend.getAge();
5154
this.virtualFriendSex = virtualFriend.getGender();
5255
this.virtualFriendRelationship = virtualFriend.getRelationship();
56+
this.friendType = virtualFriend.getFriendType();
5357
}
5458

5559
public VirtualFriend toDomain() {
@@ -61,6 +65,7 @@ public VirtualFriend toDomain() {
6165
.age(virtualFriendAge)
6266
.gender(virtualFriendSex)
6367
.relationship(virtualFriendRelationship)
68+
.friendType(friendType)
6469
.build();
6570
}
6671

0 commit comments

Comments
 (0)