Skip to content

Commit

Permalink
change: EmailTask 전체 조회시, 응답 양식을 EmailTaskDetail 양식처럼 ReceiverInfos
Browse files Browse the repository at this point in the history
…를 묶음으로 표시 (#39)
  • Loading branch information
goldentrash committed Aug 27, 2024
1 parent c082c8a commit 5ca05e0
Show file tree
Hide file tree
Showing 4 changed files with 23 additions and 15 deletions.
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
package gdsc.konkuk.platformcore.controller.email.dtos;

import gdsc.konkuk.platformcore.domain.email.entity.EmailReceiver;
import gdsc.konkuk.platformcore.domain.email.entity.EmailReceivers;
import jakarta.validation.constraints.Email;
import jakarta.validation.constraints.NotEmpty;
import java.util.Set;
import java.util.stream.Collectors;
import lombok.Builder;
import lombok.Getter;
import lombok.Setter;
Expand Down Expand Up @@ -34,4 +37,11 @@ public static EmailReceiverInfo fromValueObject(EmailReceiver emailReceiver) {
.name(emailReceiver.getName())
.build();
}

public static Set<EmailReceiverInfo> fromValueObject(EmailReceivers emailReceivers) {
return emailReceivers.getReceivers()
.stream()
.map(EmailReceiverInfo::fromValueObject)
.collect(Collectors.toSet());
}
}
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package gdsc.konkuk.platformcore.controller.email.dtos;

import gdsc.konkuk.platformcore.domain.email.entity.EmailDetails;
import gdsc.konkuk.platformcore.domain.email.entity.EmailReceiver;
import gdsc.konkuk.platformcore.domain.email.entity.EmailTask;
import java.time.LocalDateTime;
import java.util.Set;
import lombok.Builder;
import lombok.Getter;

Expand All @@ -12,26 +12,28 @@ public class SimpleEmailTaskResponse {

private final Long id;
private final String subject;
private final EmailReceiverInfo receiverInfos;
private final Set<EmailReceiverInfo> receiverInfos;
private final LocalDateTime sendAt;
private final Boolean isSent;

@Builder
public SimpleEmailTaskResponse(Long id, String subject, EmailReceiverInfo receiverInfos, LocalDateTime sendAt, boolean isSent) {
public SimpleEmailTaskResponse(Long id, String subject, Set<EmailReceiverInfo> receiverInfos, LocalDateTime sendAt, boolean isSent) {
this.id = id;
this.subject = subject;
this.receiverInfos = receiverInfos;
this.sendAt = sendAt;
this.isSent = isSent;
}

public static SimpleEmailTaskResponse of(EmailTask emailTask, EmailReceiver receiver) {
public static SimpleEmailTaskResponse from(EmailTask emailTask) {
EmailDetails emailDetails = emailTask.getEmailDetails();
EmailReceiverInfo receiverInfo = EmailReceiverInfo.fromValueObject(receiver);
Set<EmailReceiverInfo> receiverInfos =
EmailReceiverInfo.fromValueObject(emailTask.getEmailReceivers());

return SimpleEmailTaskResponse.builder()
.id(emailTask.getId())
.subject(emailDetails.getSubject())
.receiverInfos(receiverInfo)
.receiverInfos(receiverInfos)
.sendAt(emailTask.getSendAt())
.isSent(emailTask.isSent())
.build();
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package gdsc.konkuk.platformcore.controller.email.mapper;

import java.util.List;
import java.util.stream.Collectors;

import gdsc.konkuk.platformcore.controller.email.dtos.EmailTaskDetailsResponse;
import gdsc.konkuk.platformcore.controller.email.dtos.EmailTaskListResponse;
Expand All @@ -15,12 +14,9 @@ public class EmailTaskMapper {

public static EmailTaskListResponse mapToEmailTaskListResponse(List<EmailTask> emailTasks) {
List<SimpleEmailTaskResponse> simpleEmailTaskResponses =
emailTasks.stream()
.flatMap(
emailTask ->
emailTask.getEmailReceivers().getReceivers().stream()
.map(receiver -> SimpleEmailTaskResponse.of(emailTask, receiver)))
.collect(Collectors.toList());
emailTasks.stream()
.map(SimpleEmailTaskResponse::from)
.toList();
return new EmailTaskListResponse(simpleEmailTaskResponses);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -194,8 +194,8 @@ void should_success_when_get_all_task() throws Exception {
fieldWithPath("data.emailTasks").description("이메일 작업 목록"),
fieldWithPath("data.emailTasks[].id").description("이메일 작업의 ID (Mock객체에 대해 null일 수 있음.)"),
fieldWithPath("data.emailTasks[].subject").description("이메일 제목"),
fieldWithPath("data.emailTasks[].receiverInfos.email").description("수신자 email"),
fieldWithPath("data.emailTasks[].receiverInfos.name").description("수신자 이름"),
fieldWithPath("data.emailTasks[].receiverInfos[].email").description("수신자 email"),
fieldWithPath("data.emailTasks[].receiverInfos[].name").description("수신자 이름"),
fieldWithPath("data.emailTasks[].sendAt").description("이메일 발송 예정 시간 (ISO 8601 형식)"),
fieldWithPath("data.emailTasks[].isSent").description("이메일 발송 여부")
).build()))
Expand Down

0 comments on commit 5ca05e0

Please sign in to comment.