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 c0ef4a436 [refactor] move code from AlertConvergesController to
AlertConvergeService (#2428)
c0ef4a436 is described below
commit c0ef4a436eeffbf8be1c2080b70bc3e04037c1ba
Author: kangli <[email protected]>
AuthorDate: Sun Aug 4 23:54:43 2024 +0800
[refactor] move code from AlertConvergesController to AlertConvergeService
(#2428)
Co-authored-by: Calvin <[email protected]>
---
.../alert/controller/AlertConvergesController.java | 33 +---------------------
.../alert/service/AlertConvergeService.java | 13 +++++----
.../service/impl/AlertConvergeServiceImpl.java | 31 +++++++++++++++++++-
.../controller/AlertConvergesControllerTest.java | 24 ++++++++--------
.../alert/service/AlertConvergeServiceTest.java | 24 ++++++++--------
5 files changed, 61 insertions(+), 64 deletions(-)
diff --git
a/alerter/src/main/java/org/apache/hertzbeat/alert/controller/AlertConvergesController.java
b/alerter/src/main/java/org/apache/hertzbeat/alert/controller/AlertConvergesController.java
index 3d6fb584e..483347811 100644
---
a/alerter/src/main/java/org/apache/hertzbeat/alert/controller/AlertConvergesController.java
+++
b/alerter/src/main/java/org/apache/hertzbeat/alert/controller/AlertConvergesController.java
@@ -21,9 +21,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.CriteriaBuilder;
-import jakarta.persistence.criteria.Predicate;
-import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import org.apache.hertzbeat.alert.service.AlertConvergeService;
@@ -31,11 +28,7 @@ import
org.apache.hertzbeat.common.entity.alerter.AlertConverge;
import org.apache.hertzbeat.common.entity.dto.Message;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
-import org.springframework.data.domain.PageRequest;
-import org.springframework.data.domain.Sort;
-import org.springframework.data.jpa.domain.Specification;
import org.springframework.http.ResponseEntity;
-import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
@@ -63,31 +56,7 @@ public class AlertConvergesController {
@Parameter(description = "Sort mode: asc: ascending, desc:
descending", example = "desc") @RequestParam(defaultValue = "desc") String
order,
@Parameter(description = "List current page", example = "0")
@RequestParam(defaultValue = "0") int pageIndex,
@Parameter(description = "Number of list pages", example = "8")
@RequestParam(defaultValue = "8") int pageSize) {
-
- Specification<AlertConverge> specification = (root, query,
criteriaBuilder) -> {
- List<Predicate> andList = new ArrayList<>();
- if (ids != null && !ids.isEmpty()) {
- CriteriaBuilder.In<Long> inPredicate =
criteriaBuilder.in(root.get("id"));
- for (long id : ids) {
- inPredicate.value(id);
- }
- andList.add(inPredicate);
- }
- if (StringUtils.hasText(search)) {
- Predicate predicate = criteriaBuilder.or(
- criteriaBuilder.like(
- criteriaBuilder.lower(root.get("name")),
- "%" + search.toLowerCase() + "%"
- )
- );
- andList.add(predicate);
- }
- Predicate[] predicates = new Predicate[andList.size()];
- return criteriaBuilder.and(andList.toArray(predicates));
- };
- Sort sortExp = Sort.by(new
Sort.Order(Sort.Direction.fromString(order), sort));
- PageRequest pageRequest = PageRequest.of(pageIndex, pageSize, sortExp);
- Page<AlertConverge> alertConvergePage =
alertConvergeService.getAlertConverges(specification, pageRequest);
+ Page<AlertConverge> alertConvergePage =
alertConvergeService.getAlertConverges(ids, search, sort, order, pageIndex,
pageSize);
return ResponseEntity.ok(Message.success(alertConvergePage));
}
diff --git
a/alerter/src/main/java/org/apache/hertzbeat/alert/service/AlertConvergeService.java
b/alerter/src/main/java/org/apache/hertzbeat/alert/service/AlertConvergeService.java
index b41fdc5ef..4d71a868b 100644
---
a/alerter/src/main/java/org/apache/hertzbeat/alert/service/AlertConvergeService.java
+++
b/alerter/src/main/java/org/apache/hertzbeat/alert/service/AlertConvergeService.java
@@ -17,11 +17,10 @@
package org.apache.hertzbeat.alert.service;
+import java.util.List;
import java.util.Set;
import org.apache.hertzbeat.common.entity.alerter.AlertConverge;
import org.springframework.data.domain.Page;
-import org.springframework.data.domain.PageRequest;
-import org.springframework.data.jpa.domain.Specification;
/**
* management interface service for alert converge
@@ -67,9 +66,13 @@ public interface AlertConvergeService {
/**
* Dynamic conditional query
- * @param specification Query conditions
- * @param pageRequest Paging parameters
+ * @param convergeIds Alarm Converge ID List
+ * @param search Search Name
+ * @param sort Sort field
+ * @param order Sort mode: asc: ascending, desc: descending
+ * @param pageIndex List current page
+ * @param pageSize Number of list pages
* @return The query results
*/
- Page<AlertConverge> getAlertConverges(Specification<AlertConverge>
specification, PageRequest pageRequest);
+ Page<AlertConverge> getAlertConverges(List<Long> convergeIds, String
search, String sort, String order, int pageIndex, int pageSize);
}
diff --git
a/alerter/src/main/java/org/apache/hertzbeat/alert/service/impl/AlertConvergeServiceImpl.java
b/alerter/src/main/java/org/apache/hertzbeat/alert/service/impl/AlertConvergeServiceImpl.java
index a4d05b47e..bbfdf0592 100644
---
a/alerter/src/main/java/org/apache/hertzbeat/alert/service/impl/AlertConvergeServiceImpl.java
+++
b/alerter/src/main/java/org/apache/hertzbeat/alert/service/impl/AlertConvergeServiceImpl.java
@@ -17,6 +17,10 @@
package org.apache.hertzbeat.alert.service.impl;
+import jakarta.persistence.criteria.CriteriaBuilder;
+import jakarta.persistence.criteria.Predicate;
+import java.util.ArrayList;
+import java.util.List;
import java.util.Set;
import lombok.extern.slf4j.Slf4j;
import org.apache.hertzbeat.alert.dao.AlertConvergeDao;
@@ -28,9 +32,11 @@ import
org.apache.hertzbeat.common.entity.alerter.AlertConverge;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
+import org.springframework.data.domain.Sort;
import org.springframework.data.jpa.domain.Specification;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.StringUtils;
/**
* implement for alert converge service
@@ -72,7 +78,30 @@ public class AlertConvergeServiceImpl implements
AlertConvergeService {
}
@Override
- public Page<AlertConverge> getAlertConverges(Specification<AlertConverge>
specification, PageRequest pageRequest) {
+ public Page<AlertConverge> getAlertConverges(List<Long> convergeIds,
String search, String sort, String order, int pageIndex, int pageSize) {
+ Specification<AlertConverge> specification = (root, query,
criteriaBuilder) -> {
+ List<Predicate> andList = new ArrayList<>();
+ if (convergeIds != null && !convergeIds.isEmpty()) {
+ CriteriaBuilder.In<Long> inPredicate =
criteriaBuilder.in(root.get("id"));
+ for (long id : convergeIds) {
+ inPredicate.value(id);
+ }
+ andList.add(inPredicate);
+ }
+ if (StringUtils.hasText(search)) {
+ Predicate predicate = criteriaBuilder.or(
+ criteriaBuilder.like(
+ criteriaBuilder.lower(root.get("name")),
+ "%" + search.toLowerCase() + "%"
+ )
+ );
+ andList.add(predicate);
+ }
+ Predicate[] predicates = new Predicate[andList.size()];
+ return criteriaBuilder.and(andList.toArray(predicates));
+ };
+ Sort sortExp = Sort.by(new
Sort.Order(Sort.Direction.fromString(order), sort));
+ PageRequest pageRequest = PageRequest.of(pageIndex, pageSize, sortExp);
return alertConvergeDao.findAll(specification, pageRequest);
}
diff --git
a/alerter/src/test/java/org/apache/hertzbeat/alert/controller/AlertConvergesControllerTest.java
b/alerter/src/test/java/org/apache/hertzbeat/alert/controller/AlertConvergesControllerTest.java
index 28088f2d4..3eb5eb97e 100644
---
a/alerter/src/test/java/org/apache/hertzbeat/alert/controller/AlertConvergesControllerTest.java
+++
b/alerter/src/test/java/org/apache/hertzbeat/alert/controller/AlertConvergesControllerTest.java
@@ -17,10 +17,18 @@
package org.apache.hertzbeat.alert.controller;
+
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.doNothing;
+import static org.mockito.Mockito.when;
+import static
org.springframework.test.web.servlet.request.MockMvcRequestBuilders.delete;
+import static
org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
+import static
org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath;
+import static
org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
+import static
org.springframework.test.web.servlet.setup.MockMvcBuilders.standaloneSetup;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
-
import org.apache.hertzbeat.alert.service.AlertConvergeService;
import org.apache.hertzbeat.common.constants.CommonConstants;
import org.apache.hertzbeat.common.entity.alerter.AlertConverge;
@@ -30,23 +38,13 @@ import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension;
-import org.springframework.http.MediaType;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Sort;
+import org.springframework.http.MediaType;
import org.springframework.test.web.servlet.MockMvc;
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.doNothing;
-import static org.mockito.Mockito.when;
-import static
org.springframework.test.web.servlet.request.MockMvcRequestBuilders.delete;
-import static
org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath;
-import static
org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
-import static
org.springframework.test.web.servlet.setup.MockMvcBuilders.standaloneSetup;
-
-import static
org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
/**
* test case for {@link AlertConvergesController}
@@ -92,7 +90,7 @@ class AlertConvergesControllerTest {
alertConvergeList.size()
);
- when(alertConvergeService.getAlertConverges(any(),
any(PageRequest.class))).thenReturn(alertConvergePage);
+ when(alertConvergeService.getAlertConverges(null, null, "id",
"desc", 0, 8)).thenReturn(alertConvergePage);
mockMvc.perform(get("/api/alert/converges")
.param("pageIndex", "0")
diff --git
a/alerter/src/test/java/org/apache/hertzbeat/alert/service/AlertConvergeServiceTest.java
b/alerter/src/test/java/org/apache/hertzbeat/alert/service/AlertConvergeServiceTest.java
index e763a160d..e01b716ab 100644
---
a/alerter/src/test/java/org/apache/hertzbeat/alert/service/AlertConvergeServiceTest.java
+++
b/alerter/src/test/java/org/apache/hertzbeat/alert/service/AlertConvergeServiceTest.java
@@ -17,10 +17,14 @@
package org.apache.hertzbeat.alert.service;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.mockito.ArgumentMatchers.any;
+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.Set;
import java.util.Optional;
-
+import java.util.Set;
import org.apache.hertzbeat.alert.dao.AlertConvergeDao;
import org.apache.hertzbeat.alert.service.impl.AlertConvergeServiceImpl;
import org.apache.hertzbeat.common.entity.alerter.AlertConverge;
@@ -35,13 +39,6 @@ import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.domain.Specification;
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
/**
* test case for {@link
org.apache.hertzbeat.alert.service.impl.AlertConvergeServiceImpl}
*/
@@ -97,17 +94,18 @@ class AlertConvergeServiceTest {
@Test
public void testGetAlertConverges() {
- Specification<AlertConverge> specification =
mock(Specification.class);
- PageRequest pageRequest = PageRequest.of(0, 10);
Page<AlertConverge> page = new
PageImpl<>(Collections.emptyList());
when(alertConvergeDao.findAll(
any(Specification.class),
any(Pageable.class))
).thenReturn(page);
- Page<AlertConverge> result =
alertConvergeService.getAlertConverges(specification, pageRequest);
+ Page<AlertConverge> result =
alertConvergeService.getAlertConverges(null, null, "id", "desc", 1, 10);
- verify(alertConvergeDao, times(1)).findAll(specification,
pageRequest);
+ verify(alertConvergeDao, times(1)).findAll(
+ any(Specification.class),
+ any(PageRequest.class)
+ );
assertEquals(page, result);
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]