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 c998d3b85 [refactor] move code from PluginController to PluginService 
(#2417)
c998d3b85 is described below

commit c998d3b85099ced94c6817e9b047781c2b7e43eb
Author: kangli <[email protected]>
AuthorDate: Wed Jul 31 00:36:06 2024 +0800

    [refactor] move code from PluginController to PluginService (#2417)
    
    Co-authored-by: Calvin <[email protected]>
---
 .../manager/controller/PluginController.java       | 26 ++--------------------
 .../hertzbeat/manager/service/PluginService.java   |  9 ++++----
 .../manager/service/impl/PluginServiceImpl.java    | 20 ++++++++++++++++-
 .../manager/service/PluginServiceTest.java         |  8 +------
 4 files changed, 26 insertions(+), 37 deletions(-)

diff --git 
a/manager/src/main/java/org/apache/hertzbeat/manager/controller/PluginController.java
 
b/manager/src/main/java/org/apache/hertzbeat/manager/controller/PluginController.java
index dc989bd41..1fb73ada7 100644
--- 
a/manager/src/main/java/org/apache/hertzbeat/manager/controller/PluginController.java
+++ 
b/manager/src/main/java/org/apache/hertzbeat/manager/controller/PluginController.java
@@ -20,9 +20,7 @@ package org.apache.hertzbeat.manager.controller;
 import static org.springframework.http.MediaType.APPLICATION_JSON_VALUE;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.Parameter;
-import jakarta.persistence.criteria.Predicate;
 import jakarta.validation.Valid;
-import java.util.ArrayList;
 import java.util.HashSet;
 import java.util.List;
 import lombok.RequiredArgsConstructor;
@@ -31,8 +29,6 @@ import org.apache.hertzbeat.common.entity.dto.PluginUpload;
 import org.apache.hertzbeat.common.entity.manager.PluginMetadata;
 import org.apache.hertzbeat.manager.service.PluginService;
 import org.springframework.data.domain.Page;
-import org.springframework.data.domain.PageRequest;
-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;
@@ -68,26 +64,8 @@ public class PluginController {
         @Parameter(description = "plugin name search", example = "status") 
@RequestParam(required = false) String search,
         @Parameter(description = "List current page", example = "0") 
@RequestParam(defaultValue = "0") int pageIndex,
         @Parameter(description = "Number of list pagination", example = "8") 
@RequestParam(defaultValue = "8") int pageSize) {
-        // Get tag information
-        Specification<PluginMetadata> specification = (root, query, 
criteriaBuilder) -> {
-            List<Predicate> andList = new ArrayList<>();
-            if (search != null && !search.isEmpty()) {
-                Predicate predicateApp = 
criteriaBuilder.like(root.get("name"), "%" + search + "%");
-                andList.add(predicateApp);
-            }
-            Predicate[] andPredicates = new Predicate[andList.size()];
-            Predicate andPredicate = 
criteriaBuilder.and(andList.toArray(andPredicates));
-
-            if (andPredicates.length == 0) {
-                return query.where().getRestriction();
-            } else {
-                return andPredicate;
-            }
-        };
-        PageRequest pageRequest = PageRequest.of(pageIndex, pageSize);
-        Page<PluginMetadata> alertPage = 
pluginService.getPlugins(specification, pageRequest);
-        Message<Page<PluginMetadata>> message = Message.success(alertPage);
-        return ResponseEntity.ok(message);
+        Page<PluginMetadata> alertPage = pluginService.getPlugins(search, 
pageIndex, pageSize);
+        return ResponseEntity.ok(Message.success(alertPage));
     }
 
     @DeleteMapping()
diff --git 
a/manager/src/main/java/org/apache/hertzbeat/manager/service/PluginService.java 
b/manager/src/main/java/org/apache/hertzbeat/manager/service/PluginService.java
index 2fe3e5041..23d01a30b 100644
--- 
a/manager/src/main/java/org/apache/hertzbeat/manager/service/PluginService.java
+++ 
b/manager/src/main/java/org/apache/hertzbeat/manager/service/PluginService.java
@@ -22,8 +22,6 @@ import java.util.function.Consumer;
 import org.apache.hertzbeat.common.entity.dto.PluginUpload;
 import org.apache.hertzbeat.common.entity.manager.PluginMetadata;
 import org.springframework.data.domain.Page;
-import org.springframework.data.domain.PageRequest;
-import org.springframework.data.jpa.domain.Specification;
 
 /**
  * plugin service
@@ -47,11 +45,12 @@ public interface PluginService {
     /**
      * get plugin page list
      *
-     * @param specification Query condition
-     * @param pageRequest   Paging condition
+     * @param search        plugin name search
+     * @param pageIndex     List current page
+     * @param pageSize      Number of list pagination
      * @return Plugins
      */
-    Page<PluginMetadata> getPlugins(Specification<PluginMetadata> 
specification, PageRequest pageRequest);
+    Page<PluginMetadata> getPlugins(String search, int pageIndex, int 
pageSize);
 
     /**
      * execute plugin
diff --git 
a/manager/src/main/java/org/apache/hertzbeat/manager/service/impl/PluginServiceImpl.java
 
b/manager/src/main/java/org/apache/hertzbeat/manager/service/impl/PluginServiceImpl.java
index 1aeeb49b4..69b790479 100644
--- 
a/manager/src/main/java/org/apache/hertzbeat/manager/service/impl/PluginServiceImpl.java
+++ 
b/manager/src/main/java/org/apache/hertzbeat/manager/service/impl/PluginServiceImpl.java
@@ -17,6 +17,7 @@
 
 package org.apache.hertzbeat.manager.service.impl;
 
+import jakarta.persistence.criteria.Predicate;
 import java.io.File;
 import java.io.IOException;
 import java.net.MalformedURLException;
@@ -221,7 +222,24 @@ public class PluginServiceImpl implements PluginService {
     }
 
     @Override
-    public Page<PluginMetadata> getPlugins(Specification<PluginMetadata> 
specification, PageRequest pageRequest) {
+    public Page<PluginMetadata> getPlugins(String search, int pageIndex, int 
pageSize) {
+        // Get tag information
+        Specification<PluginMetadata> specification = (root, query, 
criteriaBuilder) -> {
+            List<Predicate> andList = new ArrayList<>();
+            if (search != null && !search.isEmpty()) {
+                Predicate predicateApp = 
criteriaBuilder.like(root.get("name"), "%" + search + "%");
+                andList.add(predicateApp);
+            }
+            Predicate[] andPredicates = new Predicate[andList.size()];
+            Predicate andPredicate = 
criteriaBuilder.and(andList.toArray(andPredicates));
+
+            if (andPredicates.length == 0) {
+                return query.where().getRestriction();
+            } else {
+                return andPredicate;
+            }
+        };
+        PageRequest pageRequest = PageRequest.of(pageIndex, pageSize);
         return metadataDao.findAll(specification, pageRequest);
     }
 
diff --git 
a/manager/src/test/java/org/apache/hertzbeat/manager/service/PluginServiceTest.java
 
b/manager/src/test/java/org/apache/hertzbeat/manager/service/PluginServiceTest.java
index 4187b99f8..ed94f69c6 100644
--- 
a/manager/src/test/java/org/apache/hertzbeat/manager/service/PluginServiceTest.java
+++ 
b/manager/src/test/java/org/apache/hertzbeat/manager/service/PluginServiceTest.java
@@ -24,12 +24,10 @@ import static org.mockito.ArgumentMatchers.anyList;
 import static org.mockito.ArgumentMatchers.anyLong;
 import static org.mockito.Mockito.doNothing;
 import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
-
 import java.util.Collections;
 import java.util.HashSet;
 import java.util.List;
@@ -123,13 +121,9 @@ class PluginServiceTest {
 
     @Test
     void testGetPlugins() {
-        Specification<PluginMetadata> spec = mock(Specification.class);
-        PageRequest pageRequest = PageRequest.of(0, 10);
         Page<PluginMetadata> page = new 
PageImpl<>(Collections.singletonList(new PluginMetadata()));
-
         when(metadataDao.findAll(any(Specification.class), 
any(PageRequest.class))).thenReturn(page);
-
-        Page<PluginMetadata> result = pluginService.getPlugins(spec, 
pageRequest);
+        Page<PluginMetadata> result = pluginService.getPlugins(null, 0, 10);
         assertFalse(result.isEmpty());
         verify(metadataDao, times(1)).findAll(any(Specification.class), 
any(PageRequest.class));
     }


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

Reply via email to