From 5d45242abec5340a427e6156ef552e9c79ad2fea Mon Sep 17 00:00:00 2001 From: jj Date: Wed, 6 Aug 2025 03:32:44 +0900 Subject: [PATCH 1/2] =?UTF-8?q?feat:=20=EC=B9=B4=EC=B9=B4=EC=98=A4=20list?= =?UTF-8?q?=20template=EC=97=90=EC=84=9C=20=EB=A9=94=EB=AA=A8=20null?= =?UTF-8?q?=EA=B0=92=20=EA=B2=80=EC=A6=9D=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/service/KakaoNotificationService.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/main/java/leets/bookmark/domain/notification/domain/service/KakaoNotificationService.java b/src/main/java/leets/bookmark/domain/notification/domain/service/KakaoNotificationService.java index 4523fa9a..3dac8922 100644 --- a/src/main/java/leets/bookmark/domain/notification/domain/service/KakaoNotificationService.java +++ b/src/main/java/leets/bookmark/domain/notification/domain/service/KakaoNotificationService.java @@ -13,6 +13,7 @@ import java.net.URLEncoder; import java.nio.charset.StandardCharsets; import java.util.List; +import java.util.Optional; @RequiredArgsConstructor @Service @@ -40,6 +41,7 @@ public void sendListTemplate(User user, List notificati for (int i = 0; i < notificationItemRequests.size(); i++) { NotificationItemRequest item = notificationItemRequests.get(i); + String description = Optional.ofNullable(item.description()).orElse(" "); contentsJson.append(""" { "title": "%s", @@ -54,7 +56,7 @@ public void sendListTemplate(User user, List notificati } """.formatted( escapeJson(item.title()), - escapeJson(item.description()), + description, escapeJson(item.imageUrl()), linkedUrl, linkedUrl @@ -90,6 +92,8 @@ public void sendListTemplate(User user, List notificati String formBody = "template_object=" + URLEncoder.encode(templateJson, StandardCharsets.UTF_8); + System.out.println(formBody); + String response = kakaoRestClient.post() .uri(messageSendUri) .headers(headers -> { From 77774769998634929f209c7c4c48837b2d2c03b0 Mon Sep 17 00:00:00 2001 From: jj Date: Wed, 6 Aug 2025 04:38:41 +0900 Subject: [PATCH 2/2] =?UTF-8?q?feat:=20=EC=B9=B4=EC=B9=B4=EC=98=A4=20?= =?UTF-8?q?=EB=82=98=EC=97=90=EA=B2=8C=20=EB=B3=B4=EB=82=B4=EA=B8=B0=20?= =?UTF-8?q?=EA=B8=B0=EB=8A=A5=EC=97=90=20title,=20=EB=A9=94=EB=AA=A8,=20?= =?UTF-8?q?=EC=9D=B4=EB=AF=B8=EC=A7=80=20URL=EC=9D=98=20null=20=EA=B0=92?= =?UTF-8?q?=20=EC=B2=98=EB=A6=AC=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/service/KakaoNotificationService.java | 13 ++++++++----- src/main/resources/application.yml | 1 + 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/main/java/leets/bookmark/domain/notification/domain/service/KakaoNotificationService.java b/src/main/java/leets/bookmark/domain/notification/domain/service/KakaoNotificationService.java index 3dac8922..c414f290 100644 --- a/src/main/java/leets/bookmark/domain/notification/domain/service/KakaoNotificationService.java +++ b/src/main/java/leets/bookmark/domain/notification/domain/service/KakaoNotificationService.java @@ -28,6 +28,9 @@ public class KakaoNotificationService { @Value("${kakao.message-send-uri}") private String messageSendUri; + @Value("${kakao.basic-image-url}") + private String basicImageUrl; + private final RestClient kakaoRestClient; private final AesEncryptor aesEncryptor; @@ -41,7 +44,9 @@ public void sendListTemplate(User user, List notificati for (int i = 0; i < notificationItemRequests.size(); i++) { NotificationItemRequest item = notificationItemRequests.get(i); + String title = Optional.ofNullable(item.title()).orElse("제목 없음"); String description = Optional.ofNullable(item.description()).orElse(" "); + String imageUrl = Optional.ofNullable(item.imageUrl()).orElse(basicImageUrl); contentsJson.append(""" { "title": "%s", @@ -55,9 +60,9 @@ public void sendListTemplate(User user, List notificati } } """.formatted( - escapeJson(item.title()), - description, - escapeJson(item.imageUrl()), + escapeJson(title), + escapeJson(description), + escapeJson(imageUrl), linkedUrl, linkedUrl )); @@ -92,8 +97,6 @@ public void sendListTemplate(User user, List notificati String formBody = "template_object=" + URLEncoder.encode(templateJson, StandardCharsets.UTF_8); - System.out.println(formBody); - String response = kakaoRestClient.post() .uri(messageSendUri) .headers(headers -> { diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 854415e5..a8be7be3 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -30,6 +30,7 @@ kakao: linked-url: ${KAKAO_LINKED_URL} message-send-uri: /v2/api/talk/memo/default/send notification-title : ${KAKAO_NOTIFICATION_TITLE} + basic-image-url : ${KAKAO_BASIC_IMAGE_URL} springdoc: swagger-ui: