From 61544eca9a9089248f3517086fbf394f20fe2892 Mon Sep 17 00:00:00 2001 From: agrancaric Date: Tue, 29 Mar 2022 18:46:01 +0200 Subject: [PATCH] Move methods containing response data to NotificationResponseService --- .../BaseNotificationResponseService.java | 22 +++++-------------- .../service/NotificationResponseService.java | 21 ++++++++++++++---- .../WebMvcNotificationResponseService.java | 14 ++++++++++++ .../stub/NotificationResponseTestService.java | 4 ++-- 4 files changed, 38 insertions(+), 23 deletions(-) diff --git a/nrich-notification-api/src/main/java/net/croz/nrich/notification/api/service/BaseNotificationResponseService.java b/nrich-notification-api/src/main/java/net/croz/nrich/notification/api/service/BaseNotificationResponseService.java index 375772bbd..fa7fdb5b0 100644 --- a/nrich-notification-api/src/main/java/net/croz/nrich/notification/api/service/BaseNotificationResponseService.java +++ b/nrich-notification-api/src/main/java/net/croz/nrich/notification/api/service/BaseNotificationResponseService.java @@ -46,23 +46,19 @@ public interface BaseNotificationResponseService { /** * Returns response with {@link net.croz.nrich.notification.api.model.Notification} instance. * - * @param data data to include in response + * @param actionName name of the action for which to resolve notification * @param additionalNotificationData additional notification data to add to notification - * @param type of data * @return response with notification */ - T responseWithNotificationActionResolvedFromRequest(D data, AdditionalNotificationData additionalNotificationData); + T responseWithNotification(String actionName, AdditionalNotificationData additionalNotificationData); /** * Returns response with {@link net.croz.nrich.notification.api.model.Notification} instance. * - * @param data data to include in response - * @param actionName name of the action for which to resolve notification * @param additionalNotificationData additional notification data to add to notification - * @param type of data * @return response with notification */ - T responseWithNotification(D data, String actionName, AdditionalNotificationData additionalNotificationData); + T responseWithNotificationActionResolvedFromRequest(AdditionalNotificationData additionalNotificationData); NotificationResolverService notificationResolverService(); @@ -78,19 +74,11 @@ default T responseWithExceptionNotification(Throwable throwable, Object... addit return responseWithExceptionNotification(throwable, AdditionalNotificationData.empty(), additionalMessageArgumentList); } - default T responseWithNotificationActionResolvedFromRequest(D data) { - return responseWithNotificationActionResolvedFromRequest(data, AdditionalNotificationData.empty()); - } - - default T responseWithNotification(D data, String actionName) { - return responseWithNotification(data, actionName, AdditionalNotificationData.empty()); - } - default T responseWithNotificationActionResolvedFromRequest() { - return responseWithNotificationActionResolvedFromRequest(null, AdditionalNotificationData.empty()); + return responseWithNotificationActionResolvedFromRequest(AdditionalNotificationData.empty()); } default T responseWithNotification(String actionName) { - return responseWithNotification(null, actionName, AdditionalNotificationData.empty()); + return responseWithNotification(actionName, AdditionalNotificationData.empty()); } } diff --git a/nrich-notification-api/src/main/java/net/croz/nrich/notification/api/service/NotificationResponseService.java b/nrich-notification-api/src/main/java/net/croz/nrich/notification/api/service/NotificationResponseService.java index 925aba987..9a888762b 100644 --- a/nrich-notification-api/src/main/java/net/croz/nrich/notification/api/service/NotificationResponseService.java +++ b/nrich-notification-api/src/main/java/net/croz/nrich/notification/api/service/NotificationResponseService.java @@ -6,18 +6,31 @@ public interface NotificationResponseService extends BaseNotificationResponseService { - @Override + /** + * Returns response with {@link net.croz.nrich.notification.api.model.Notification} instance. + * + * @param data data to include in response + * @param additionalNotificationData additional notification data to add to notification + * @param type of data + * @return response with notification + */ NotificationDataResponse responseWithNotificationActionResolvedFromRequest(D data, AdditionalNotificationData additionalNotificationData); - @Override + /** + * Returns response with {@link net.croz.nrich.notification.api.model.Notification} instance. + * + * @param data data to include in response + * @param actionName name of the action for which to resolve notification + * @param additionalNotificationData additional notification data to add to notification + * @param type of data + * @return response with notification + */ NotificationDataResponse responseWithNotification(D data, String actionName, AdditionalNotificationData additionalNotificationData); - @Override default NotificationDataResponse responseWithNotificationActionResolvedFromRequest(D data) { return responseWithNotificationActionResolvedFromRequest(data, AdditionalNotificationData.empty()); } - @Override default NotificationDataResponse responseWithNotification(D data, String actionName) { return responseWithNotification(data, actionName, AdditionalNotificationData.empty()); } diff --git a/nrich-notification/src/main/java/net/croz/nrich/notification/service/WebMvcNotificationResponseService.java b/nrich-notification/src/main/java/net/croz/nrich/notification/service/WebMvcNotificationResponseService.java index 7be09a384..7ba97c5b8 100644 --- a/nrich-notification/src/main/java/net/croz/nrich/notification/service/WebMvcNotificationResponseService.java +++ b/nrich-notification/src/main/java/net/croz/nrich/notification/service/WebMvcNotificationResponseService.java @@ -43,6 +43,20 @@ public NotificationResponse responseWithExceptionNotification(Throwable throwabl return new NotificationResponse(notification); } + @Override + public NotificationResponse responseWithNotificationActionResolvedFromRequest(AdditionalNotificationData additionalNotificationData) { + String actionName = extractActionNameFromCurrentRequest(); + + return responseWithNotification(actionName, additionalNotificationData); + } + + @Override + public NotificationResponse responseWithNotification(String actionName, AdditionalNotificationData additionalNotificationData) { + Notification notification = notificationResolverService.createNotificationForAction(actionName, additionalNotificationData); + + return new NotificationResponse(notification); + } + @Override public NotificationDataResponse responseWithNotificationActionResolvedFromRequest(D data, AdditionalNotificationData additionalNotificationData) { String actionName = extractActionNameFromCurrentRequest(); diff --git a/nrich-webmvc-spring-boot-starter/src/test/java/net/croz/nrich/webmvc/starter/configuration/stub/NotificationResponseTestService.java b/nrich-webmvc-spring-boot-starter/src/test/java/net/croz/nrich/webmvc/starter/configuration/stub/NotificationResponseTestService.java index e4106d1ab..80224c666 100644 --- a/nrich-webmvc-spring-boot-starter/src/test/java/net/croz/nrich/webmvc/starter/configuration/stub/NotificationResponseTestService.java +++ b/nrich-webmvc-spring-boot-starter/src/test/java/net/croz/nrich/webmvc/starter/configuration/stub/NotificationResponseTestService.java @@ -25,12 +25,12 @@ public Object responseWithExceptionNotification(Throwable throwable, AdditionalN } @Override - public Object responseWithNotificationActionResolvedFromRequest(D data, AdditionalNotificationData additionalNotificationData) { + public Object responseWithNotification(String actionName, AdditionalNotificationData additionalNotificationData) { return null; } @Override - public Object responseWithNotification(D data, String actionName, AdditionalNotificationData additionalNotificationData) { + public Object responseWithNotificationActionResolvedFromRequest(AdditionalNotificationData additionalNotificationData) { return null; }