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..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 @@ -13,6 +13,7 @@ import java.net.URLEncoder; import java.nio.charset.StandardCharsets; import java.util.List; +import java.util.Optional; @RequiredArgsConstructor @Service @@ -27,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; @@ -40,6 +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", @@ -53,9 +60,9 @@ public void sendListTemplate(User user, List notificati } } """.formatted( - escapeJson(item.title()), - escapeJson(item.description()), - escapeJson(item.imageUrl()), + escapeJson(title), + escapeJson(description), + escapeJson(imageUrl), linkedUrl, linkedUrl )); 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: