Skip to content

Commit 803c3d4

Browse files
committed
CLAP-294 Refactor: 추상화 클래스 NotificationSender를 구현하도록 수정
<footer> - 관련: #350
1 parent 4022ced commit 803c3d4

File tree

7 files changed

+32
-24
lines changed

7 files changed

+32
-24
lines changed

src/main/java/clap/server/application/port/outbound/webhook/SendAgitPort.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,5 @@
44
import clap.server.domain.model.task.Task;
55

66
public interface SendAgitPort {
7-
void sendAgit(PushNotificationTemplate request, Task task);
7+
Long sendAgit(PushNotificationTemplate request, Task task);
88
}

src/main/java/clap/server/application/service/history/PostCommentService.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,22 +4,22 @@
44
import clap.server.adapter.outbound.persistense.entity.member.constant.MemberRole;
55
import clap.server.adapter.outbound.persistense.entity.notification.constant.NotificationType;
66
import clap.server.adapter.outbound.persistense.entity.task.constant.TaskHistoryType;
7-
import clap.server.application.port.inbound.history.SaveCommentAttachmentUsecase;
8-
import clap.server.application.port.inbound.history.SaveCommentUsecase;
97
import clap.server.application.port.inbound.domain.MemberService;
108
import clap.server.application.port.inbound.domain.TaskService;
9+
import clap.server.application.port.inbound.history.SaveCommentAttachmentUsecase;
10+
import clap.server.application.port.inbound.history.SaveCommentUsecase;
1111
import clap.server.application.port.outbound.s3.S3UploadPort;
1212
import clap.server.application.port.outbound.task.CommandAttachmentPort;
1313
import clap.server.application.port.outbound.task.CommandCommentPort;
1414
import clap.server.application.port.outbound.taskhistory.CommandTaskHistoryPort;
1515
import clap.server.application.service.webhook.SendNotificationService;
1616
import clap.server.common.annotation.architecture.ApplicationService;
17-
import clap.server.domain.policy.attachment.FilePathPolicy;
1817
import clap.server.domain.model.member.Member;
1918
import clap.server.domain.model.task.Attachment;
2019
import clap.server.domain.model.task.Comment;
2120
import clap.server.domain.model.task.Task;
2221
import clap.server.domain.model.task.TaskHistory;
22+
import clap.server.domain.policy.attachment.FilePathPolicy;
2323
import lombok.RequiredArgsConstructor;
2424
import org.springframework.transaction.annotation.Transactional;
2525
import org.springframework.web.multipart.MultipartFile;
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package clap.server.application.service.webhook;
2+
3+
import clap.server.adapter.outbound.api.dto.PushNotificationTemplate;
4+
5+
public interface NotificationSender {
6+
void send(PushNotificationTemplate template);
7+
}
Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,26 @@
11
package clap.server.application.service.webhook;
22

33
import clap.server.adapter.outbound.api.dto.PushNotificationTemplate;
4+
import clap.server.adapter.outbound.persistense.entity.notification.constant.NotificationType;
5+
import clap.server.application.port.inbound.domain.TaskService;
46
import clap.server.application.port.outbound.webhook.SendAgitPort;
5-
import clap.server.common.annotation.architecture.ApplicationService;
67
import clap.server.domain.model.task.Task;
78
import lombok.RequiredArgsConstructor;
9+
import org.springframework.stereotype.Service;
810

9-
@ApplicationService
11+
@Service
1012
@RequiredArgsConstructor
1113
public class SendAgitService {
1214

1315
private final SendAgitPort agitPort;
16+
private final TaskService taskService;
1417

1518
public void sendAgit(PushNotificationTemplate request, Task task) {
16-
agitPort.sendAgit(request, task);
19+
Long agitPostId = agitPort.sendAgit(request, task);
20+
21+
if (request.notificationType().equals(NotificationType.TASK_REQUESTED)) {
22+
task.updateAgitPostId(agitPostId);
23+
taskService.upsert(task);
24+
}
1725
}
1826
}

src/main/java/clap/server/application/service/webhook/SendKaKaoWorkService.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,16 @@
22

33
import clap.server.adapter.outbound.api.dto.PushNotificationTemplate;
44
import clap.server.application.port.outbound.webhook.SendKaKaoWorkPort;
5-
import clap.server.common.annotation.architecture.ApplicationService;
65
import lombok.RequiredArgsConstructor;
6+
import org.springframework.stereotype.Service;
77

8-
@ApplicationService
8+
@Service
99
@RequiredArgsConstructor
10-
public class SendKaKaoWorkService {
10+
public class SendKaKaoWorkService implements NotificationSender {
1111

1212
private final SendKaKaoWorkPort sendKaKaoWorkPort;
1313

14-
public void sendKaKaoWork(PushNotificationTemplate request) {
14+
public void send(PushNotificationTemplate request) {
1515
sendKaKaoWorkPort.sendKakaoWork(request);
1616
}
1717
}

src/main/java/clap/server/application/service/webhook/SendNotificationService.java

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
import clap.server.adapter.inbound.web.dto.notification.request.SseRequest;
44
import clap.server.adapter.outbound.api.dto.PushNotificationTemplate;
55
import clap.server.adapter.outbound.persistense.entity.notification.constant.NotificationType;
6-
import clap.server.application.port.inbound.domain.TaskService;
76
import clap.server.application.port.outbound.notification.CommandNotificationPort;
87
import clap.server.application.port.outbound.webhook.SendSsePort;
98
import clap.server.common.annotation.architecture.ApplicationService;
@@ -14,6 +13,7 @@
1413
import org.springframework.scheduling.annotation.Async;
1514

1615
import java.util.concurrent.CompletableFuture;
16+
1717
import static clap.server.domain.model.notification.Notification.createTaskNotification;
1818

1919
@ApplicationService
@@ -25,7 +25,6 @@ public class SendNotificationService {
2525
private final SendWebhookEmailService sendWebhookEmailService;
2626
private final SendKaKaoWorkService sendKaKaoWorkService;
2727
private final CommandNotificationPort commandNotificationPort;
28-
private final TaskService taskService;
2928

3029
@Async("notificationExecutor")
3130
public void sendPushNotification(Member receiver, NotificationType notificationType,
@@ -83,12 +82,6 @@ public void sendAgitNotification(NotificationType notificationType,
8382
message,
8483
commenterName
8584
);
86-
87-
if(notificationType.equals(NotificationType.TASK_REQUESTED)){
88-
Long agitPostId = sendAgitService.sendAgit(pushNotificationTemplate, task);
89-
90-
task.updateAgitPostId(agitPostId);
91-
taskService.upsert(task);
92-
}
85+
sendAgitService.sendAgit(pushNotificationTemplate, task);
9386
}
9487
}

src/main/java/clap/server/application/service/webhook/SendWebhookEmailService.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,16 @@
22

33
import clap.server.adapter.outbound.api.dto.PushNotificationTemplate;
44
import clap.server.application.port.outbound.webhook.SendWebhookEmailPort;
5-
import clap.server.common.annotation.architecture.ApplicationService;
65
import lombok.RequiredArgsConstructor;
6+
import org.springframework.stereotype.Service;
77

8-
@ApplicationService
8+
@Service
99
@RequiredArgsConstructor
10-
public class SendWebhookEmailService {
10+
public class SendWebhookEmailService implements NotificationSender {
1111

1212
private final SendWebhookEmailPort sendWebhookEmailPort;
1313

14-
public void sendEmail(PushNotificationTemplate request) {
14+
public void send(PushNotificationTemplate request) {
1515
sendWebhookEmailPort.sendWebhookEmail(request);
1616
}
1717
}

0 commit comments

Comments
 (0)