diff --git a/src/main/java/org/terning/fcm/application/FcmPushSenderImpl.java b/src/main/java/org/terning/fcm/application/FcmPushSenderImpl.java index 79539af..4fc78fd 100644 --- a/src/main/java/org/terning/fcm/application/FcmPushSenderImpl.java +++ b/src/main/java/org/terning/fcm/application/FcmPushSenderImpl.java @@ -21,14 +21,12 @@ public boolean send(Notification notification) { User user = notification.getUser(); String token = user.getToken().value(); - ViewType viewType = ViewType.fromTemplate(notification.getMessage().getMessageTemplateType()); - Message fcmMessage = Message.builder() .setToken(token) - .putData("token", token) .putData("type", notification.getMessage().getViewType()) .putData("title", notification.getMessage().getMain()) .putData("body", notification.getMessage().getSub()) + .putData("imageUrl", notification.getMessage().getImageUrl()) .build(); String response = FirebaseMessaging.getInstance().send(fcmMessage); diff --git a/src/main/java/org/terning/message/domain/Message.java b/src/main/java/org/terning/message/domain/Message.java index 39db0c3..e32be05 100644 --- a/src/main/java/org/terning/message/domain/Message.java +++ b/src/main/java/org/terning/message/domain/Message.java @@ -26,15 +26,20 @@ public class Message extends BaseEntity { private String viewType; - private Message(MessageTemplateType messageTemplateType, String main, String sub, String viewType) { + private String imageUrl; + + private Message(MessageTemplateType messageTemplateType, String main, String sub, + String viewType, String imageUrl) { this.messageTemplateType = messageTemplateType; this.main = main; this.sub = sub; this.viewType = viewType; + this.imageUrl = imageUrl; } - public static Message of(MessageTemplateType messageTemplateType, String main, String sub) { - return new Message(messageTemplateType, main, sub, ViewType.fromTemplate(messageTemplateType).name()); + public static Message of(MessageTemplateType messageTemplateType, String main, String sub, String imageUrl) { + return new Message(messageTemplateType, main, sub, + ViewType.fromTemplate(messageTemplateType).name(), imageUrl); } public boolean isSameType(MessageTemplateType other) { diff --git a/src/main/java/org/terning/message/domain/enums/MessageTemplateType.java b/src/main/java/org/terning/message/domain/enums/MessageTemplateType.java index 00ea67c..e1516f3 100644 --- a/src/main/java/org/terning/message/domain/enums/MessageTemplateType.java +++ b/src/main/java/org/terning/message/domain/enums/MessageTemplateType.java @@ -42,6 +42,17 @@ public static MessageTemplateType from(String template) { .orElseThrow(() -> new NotificationException(NotificationErrorCode.INVALID_TEMPLATE_TYPE)); } + public String getImageUrl() { + return switch (this) { + case INTERESTED_ANNOUNCEMENT_REMINDER -> + "https://your-cdn.com/images/interested_announcement.png"; + case RECENTLY_POSTED_INTERNSHIP_RECOMMENDATION -> + "https://your-cdn.com/images/recently_posted_internship.png"; + case TRENDING_INTERNSHIP_ALERT -> + "https://your-cdn.com/images/trending_internship.png"; + }; + } + public String main(Map params) { return mainMessage.format(params); } diff --git a/src/main/java/org/terning/notification/application/writer/NotificationWriterImpl.java b/src/main/java/org/terning/notification/application/writer/NotificationWriterImpl.java index 6897995..e3bb3d8 100644 --- a/src/main/java/org/terning/notification/application/writer/NotificationWriterImpl.java +++ b/src/main/java/org/terning/notification/application/writer/NotificationWriterImpl.java @@ -69,7 +69,8 @@ private Message createMessage(MessageTemplateType template, Map return Message.of( template, template.main(context), - template.sub(context) + template.sub(context), + template.getImageUrl() ); }