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]