Skip to content

feat : 임시저장 기능 구현 #75

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Nov 28, 2024
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -152,5 +152,12 @@ private String getReceiversAsString(List<Receiver> receivers) {
.collect(Collectors.joining(", "));
}


@PostMapping("/temp")
public CommonResponse<Void> saveTempMessage(
@AuthenticationPrincipal UserDetails authenticatedPrincipal,
@Valid @RequestBody MessageRequestDto.TempMessageRequest request) {
String userEmail = authenticatedPrincipal.getUsername();
messageServiceImpl.saveTempMessage(request, userEmail);
return CommonResponse.onSuccess(null);
}
}
13 changes: 13 additions & 0 deletions src/main/java/com/pictalk/message/dto/MessageRequestDto.java
Original file line number Diff line number Diff line change
Expand Up @@ -110,4 +110,17 @@ public static class CreateAIMessageRequest {
private String situation;
private List<String> keyword;
}

@Getter
public static class TempMessageRequest {

private String duplicateFlag = "N";
private String content;
private String from;
private String to;
private String sendTime;
private int targetCount;
private List<Target> targets;
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,17 @@
import com.pictalk.infra.PpurioService;
import com.pictalk.message.domain.Message;
import com.pictalk.message.domain.MessageStatus;
import com.pictalk.message.domain.Sender;
import com.pictalk.message.dto.MessageRequestDto;
import com.pictalk.message.dto.MessageRequestDto.TempMessageRequest;
import com.pictalk.message.dto.MessageResponseDto;
import com.pictalk.message.dto.MessageResponseDto.CancelMessageResponse;
import com.pictalk.message.repository.MessageRepository;
import com.pictalk.message.repository.ReceiverRepository;
import com.pictalk.message.repository.SenderRepository;
import com.pictalk.user.domain.User;
import com.pictalk.user.repository.UserRepository;
import jakarta.validation.Valid;
import java.util.List;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
Expand All @@ -29,6 +34,7 @@ public class MessageServiceImpl {
private final UserRepository userRepository;
private final PpurioClient ppurioClient;
private final PpurioService ppurioService;
private final SenderService senderService;


@Transactional(readOnly = true)
Expand Down Expand Up @@ -99,4 +105,18 @@ public List<Message> getMessageByStatus(String userEmail, String status) {
}


public void saveTempMessage(@Valid MessageRequestDto.TempMessageRequest request, String userEmail) {
User user = userRepository.findByEmail(userEmail)
.orElseThrow(() -> new GeneralException(ErrorStatus.USER_NOT_FOUND));

Sender sender = senderService.findOrCreateByUserAndPhoneNumber(user, request.getFrom());

Message message = Message.builder()
.sender(sender)
.content(request.getContent())
.status(MessageStatus.TEMP)
.build();

saveMessage(message);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -17,4 +17,9 @@ public Sender findOrCreateSender(String from, User user) {
return senderRepository.findByPhoneNumberAndUser(from, user)
.orElseGet(() -> senderRepository.save(Sender.builder().phoneNumber(from).user(user).build()));
}

public Sender findOrCreateByUserAndPhoneNumber(User user, String from) {
return senderRepository.findByPhoneNumberAndUser(from, user)
.orElseGet(() -> senderRepository.save(Sender.builder().phoneNumber(from).user(user).build()));
}
}