This is an automated email from the ASF dual-hosted git repository.

zhengqiwei pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hertzbeat.git


The following commit(s) were added to refs/heads/master by this push:
     new c7f439063 [refactor] move code from NoticeConfigController to 
NoticeConfigService (#2416)
c7f439063 is described below

commit c7f4390638cbebcc8170a0625e67ec284b8b1b30
Author: kangli <[email protected]>
AuthorDate: Wed Jul 31 00:41:40 2024 +0800

    [refactor] move code from NoticeConfigController to NoticeConfigService 
(#2416)
    
    Co-authored-by: Calvin <[email protected]>
---
 .../manager/controller/NoticeConfigController.java | 42 ++++------------------
 .../manager/service/NoticeConfigService.java       | 13 ++++---
 .../service/impl/NoticeConfigServiceImpl.java      | 31 ++++++++++++++--
 .../manager/service/NoticeConfigServiceTest.java   | 15 ++++----
 4 files changed, 46 insertions(+), 55 deletions(-)

diff --git 
a/manager/src/main/java/org/apache/hertzbeat/manager/controller/NoticeConfigController.java
 
b/manager/src/main/java/org/apache/hertzbeat/manager/controller/NoticeConfigController.java
index d1eb09ac3..eb1c38f45 100644
--- 
a/manager/src/main/java/org/apache/hertzbeat/manager/controller/NoticeConfigController.java
+++ 
b/manager/src/main/java/org/apache/hertzbeat/manager/controller/NoticeConfigController.java
@@ -22,7 +22,6 @@ import static 
org.springframework.http.MediaType.APPLICATION_JSON_VALUE;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.Parameter;
 import io.swagger.v3.oas.annotations.tags.Tag;
-import jakarta.persistence.criteria.Predicate;
 import java.util.List;
 import java.util.Optional;
 import javax.validation.Valid;
@@ -32,7 +31,6 @@ import org.apache.hertzbeat.common.entity.manager.NoticeRule;
 import org.apache.hertzbeat.common.entity.manager.NoticeTemplate;
 import org.apache.hertzbeat.manager.service.NoticeConfigService;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.jpa.domain.Specification;
 import org.springframework.http.ResponseEntity;
 import org.springframework.web.bind.annotation.DeleteMapping;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -86,17 +84,8 @@ public class NoticeConfigController {
             description = "Get a list of message notification recipients based 
on query filter items")
     public ResponseEntity<Message<List<NoticeReceiver>>> getReceivers(
             @Parameter(description = "en: Recipient name,support fuzzy query", 
example = "tom") @RequestParam(required = false) final String name) {
-        Specification<NoticeReceiver> specification = (root, query, 
criteriaBuilder) -> {
-            Predicate predicate = criteriaBuilder.conjunction();
-            if (name != null && !name.isEmpty()) {
-                Predicate predicateName = 
criteriaBuilder.like(root.get("name"), "%" + name + "%");
-                predicate = criteriaBuilder.and(predicateName);
-            }
-            return predicate;
-        };
-        List<NoticeReceiver> receivers = 
noticeConfigService.getNoticeReceivers(specification);
-        Message<List<NoticeReceiver>> message = Message.success(receivers);
-        return ResponseEntity.ok(message);
+        List<NoticeReceiver> receivers = 
noticeConfigService.getNoticeReceivers(name);
+        return ResponseEntity.ok(Message.success(receivers));
     }
 
     @PostMapping(path = "/rule")
@@ -131,17 +120,8 @@ public class NoticeConfigController {
             description = "Get a list of message notification policies based 
on query filter items")
     public ResponseEntity<Message<List<NoticeRule>>> getRules(
             @Parameter(description = "en: Recipient name", example = "rule1") 
@RequestParam(required = false) final String name) {
-        Specification<NoticeRule> specification = (root, query, 
criteriaBuilder) -> {
-            Predicate predicate = criteriaBuilder.conjunction();
-            if (name != null && !name.isEmpty()) {
-                Predicate predicateName = 
criteriaBuilder.like(root.get("name"), "%" + name + "%");
-                predicate = criteriaBuilder.and(predicateName);
-            }
-            return predicate;
-        };
-        List<NoticeRule> receiverPage = 
noticeConfigService.getNoticeRules(specification);
-        Message<List<NoticeRule>> message = Message.success(receiverPage);
-        return ResponseEntity.ok(message);
+        List<NoticeRule> receiverPage = 
noticeConfigService.getNoticeRules(name);
+        return ResponseEntity.ok(Message.success(receiverPage));
     }
 
 
@@ -177,18 +157,8 @@ public class NoticeConfigController {
             description = "Get a list of message notification templates based 
on query filter items")
     public ResponseEntity<Message<List<NoticeTemplate>>> getTemplates(
             @Parameter(description = "Template name,support fuzzy query", 
example = "rule1") @RequestParam(required = false) final String name) {
-
-        Specification<NoticeTemplate> specification = (root, query, 
criteriaBuilder) -> {
-            Predicate predicate = criteriaBuilder.conjunction();
-            if (name != null && !"".equals(name)) {
-                Predicate predicateName = 
criteriaBuilder.like(root.get("name"), "%" + name + "%");
-                predicate = criteriaBuilder.and(predicateName);
-            }
-            return predicate;
-        };
-        List<NoticeTemplate> templatePage = 
noticeConfigService.getNoticeTemplates(specification);
-        Message<List<NoticeTemplate>> message = Message.success(templatePage);
-        return ResponseEntity.ok(message);
+        List<NoticeTemplate> templatePage = 
noticeConfigService.getNoticeTemplates(name);
+        return ResponseEntity.ok(Message.success(templatePage));
     }
 
     @PostMapping(path = "/receiver/send-test-msg")
diff --git 
a/manager/src/main/java/org/apache/hertzbeat/manager/service/NoticeConfigService.java
 
b/manager/src/main/java/org/apache/hertzbeat/manager/service/NoticeConfigService.java
index a304cace5..42fde07d0 100644
--- 
a/manager/src/main/java/org/apache/hertzbeat/manager/service/NoticeConfigService.java
+++ 
b/manager/src/main/java/org/apache/hertzbeat/manager/service/NoticeConfigService.java
@@ -23,7 +23,6 @@ import org.apache.hertzbeat.common.entity.alerter.Alert;
 import org.apache.hertzbeat.common.entity.manager.NoticeReceiver;
 import org.apache.hertzbeat.common.entity.manager.NoticeRule;
 import org.apache.hertzbeat.common.entity.manager.NoticeTemplate;
-import org.springframework.data.jpa.domain.Specification;
 
 /**
  * Message notification configuration interface
@@ -32,24 +31,24 @@ public interface NoticeConfigService {
 
     /**
      * Dynamic conditional query
-     * @param specification Query conditions
+     * @param name Recipient name,support fuzzy query
      * @return Search result
      */
-    List<NoticeReceiver> getNoticeReceivers(Specification<NoticeReceiver> 
specification);
+    List<NoticeReceiver> getNoticeReceivers(String name);
 
     /**
      * Dynamic conditional query
-     * @param specification Query conditions
+     * @param name Template name,support fuzzy query
      * @return Search result
      */
-    List<NoticeTemplate> getNoticeTemplates(Specification<NoticeTemplate> 
specification);
+    List<NoticeTemplate> getNoticeTemplates(String name);
 
     /**
      * Dynamic conditional query
-     * @param specification Query conditions
+     * @param name Recipient name
      * @return Search result
      */
-    List<NoticeRule> getNoticeRules(Specification<NoticeRule> specification);
+    List<NoticeRule> getNoticeRules(String name);
 
     /**
      * Add a notification recipient
diff --git 
a/manager/src/main/java/org/apache/hertzbeat/manager/service/impl/NoticeConfigServiceImpl.java
 
b/manager/src/main/java/org/apache/hertzbeat/manager/service/impl/NoticeConfigServiceImpl.java
index 20c98298b..efb3a8a6e 100644
--- 
a/manager/src/main/java/org/apache/hertzbeat/manager/service/impl/NoticeConfigServiceImpl.java
+++ 
b/manager/src/main/java/org/apache/hertzbeat/manager/service/impl/NoticeConfigServiceImpl.java
@@ -17,6 +17,7 @@
 
 package org.apache.hertzbeat.manager.service.impl;
 
+import jakarta.persistence.criteria.Predicate;
 import java.io.IOException;
 import java.io.InputStream;
 import java.nio.charset.StandardCharsets;
@@ -83,19 +84,43 @@ public class NoticeConfigServiceImpl implements 
NoticeConfigService, CommandLine
 
 
     @Override
-    public List<NoticeReceiver> 
getNoticeReceivers(Specification<NoticeReceiver> specification) {
+    public List<NoticeReceiver> getNoticeReceivers(String name) {
+        Specification<NoticeReceiver> specification = (root, query, 
criteriaBuilder) -> {
+            Predicate predicate = criteriaBuilder.conjunction();
+            if (name != null && !name.isEmpty()) {
+                Predicate predicateName = 
criteriaBuilder.like(root.get("name"), "%" + name + "%");
+                predicate = criteriaBuilder.and(predicateName);
+            }
+            return predicate;
+        };
         return noticeReceiverDao.findAll(specification);
     }
 
     @Override
-    public List<NoticeTemplate> 
getNoticeTemplates(Specification<NoticeTemplate> specification) {
+    public List<NoticeTemplate> getNoticeTemplates(String name) {
+        Specification<NoticeTemplate> specification = (root, query, 
criteriaBuilder) -> {
+            Predicate predicate = criteriaBuilder.conjunction();
+            if (name != null && !"".equals(name)) {
+                Predicate predicateName = 
criteriaBuilder.like(root.get("name"), "%" + name + "%");
+                predicate = criteriaBuilder.and(predicateName);
+            }
+            return predicate;
+        };
         List<NoticeTemplate> defaultTemplates = new 
LinkedList<>(PRESET_TEMPLATE.values());
         defaultTemplates.addAll(noticeTemplateDao.findAll(specification));
         return defaultTemplates;
     }
 
     @Override
-    public List<NoticeRule> getNoticeRules(Specification<NoticeRule> 
specification) {
+    public List<NoticeRule> getNoticeRules(String name) {
+        Specification<NoticeRule> specification = (root, query, 
criteriaBuilder) -> {
+            Predicate predicate = criteriaBuilder.conjunction();
+            if (name != null && !name.isEmpty()) {
+                Predicate predicateName = 
criteriaBuilder.like(root.get("name"), "%" + name + "%");
+                predicate = criteriaBuilder.and(predicateName);
+            }
+            return predicate;
+        };
         return noticeRuleDao.findAll(specification);
     }
 
diff --git 
a/manager/src/test/java/org/apache/hertzbeat/manager/service/NoticeConfigServiceTest.java
 
b/manager/src/test/java/org/apache/hertzbeat/manager/service/NoticeConfigServiceTest.java
index c595b7242..a7c6ac19e 100644
--- 
a/manager/src/test/java/org/apache/hertzbeat/manager/service/NoticeConfigServiceTest.java
+++ 
b/manager/src/test/java/org/apache/hertzbeat/manager/service/NoticeConfigServiceTest.java
@@ -69,23 +69,20 @@ class NoticeConfigServiceTest {
 
     @Test
     void getNoticeReceivers() {
-        final Specification<NoticeReceiver> specification = 
mock(Specification.class);
-        noticeConfigService.getNoticeReceivers(specification);
-        verify(noticeReceiverDao, times(1)).findAll(specification);
+        noticeConfigService.getNoticeReceivers(null);
+        verify(noticeReceiverDao, times(1)).findAll(any(Specification.class));
     }
 
     @Test
     void getNoticeTemplates() {
-        final Specification<NoticeTemplate> specification = 
mock(Specification.class);
-        noticeConfigService.getNoticeTemplates(specification);
-        verify(noticeTemplateDao, times(1)).findAll(specification);
+        noticeConfigService.getNoticeTemplates(null);
+        verify(noticeTemplateDao, times(1)).findAll(any(Specification.class));
     }
 
     @Test
     void getNoticeRules() {
-        final Specification<NoticeRule> specification = 
mock(Specification.class);
-        noticeConfigService.getNoticeRules(specification);
-        verify(noticeRuleDao, times(1)).findAll(specification);
+        noticeConfigService.getNoticeRules(null);
+        verify(noticeRuleDao, times(1)).findAll(any(Specification.class));
     }
 
     @Test


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to