From 210aae6a864c8bab098ad69a6d7b05672c087e20 Mon Sep 17 00:00:00 2001 From: dashevchenko Date: Tue, 14 Mar 2023 14:15:37 +0200 Subject: [PATCH] updated alarm comment deletion --- .../alarm/DefaultTbAlarmCommentService.java | 10 +-------- .../DefaultTbAlarmCommentServiceTest.java | 7 ++++--- .../server/dao/alarm/AlarmCommentService.java | 3 ++- .../dao/alarm/BaseAlarmCommentService.java | 21 ++++++++++++++++--- .../service/BaseAlarmCommentServiceTest.java | 2 +- 5 files changed, 26 insertions(+), 17 deletions(-) diff --git a/application/src/main/java/org/thingsboard/server/service/entitiy/alarm/DefaultTbAlarmCommentService.java b/application/src/main/java/org/thingsboard/server/service/entitiy/alarm/DefaultTbAlarmCommentService.java index 3484f35646..045714d58a 100644 --- a/application/src/main/java/org/thingsboard/server/service/entitiy/alarm/DefaultTbAlarmCommentService.java +++ b/application/src/main/java/org/thingsboard/server/service/entitiy/alarm/DefaultTbAlarmCommentService.java @@ -48,15 +48,7 @@ public class DefaultTbAlarmCommentService extends AbstractTbEntityService implem @Override public void deleteAlarmComment(Alarm alarm, AlarmComment alarmComment, User user) { - alarmCommentService.deleteAlarmComment(alarm.getTenantId(), alarmComment.getId()); + alarmCommentService.deleteAlarmComment(alarm.getTenantId(), alarmComment, user); notificationEntityService.notifyAlarmComment(alarm, alarmComment, ActionType.DELETED_COMMENT, user); - - AlarmComment.AlarmCommentBuilder commentDeletedComment = AlarmComment.builder() - .alarmId(alarm.getId()) - .type(AlarmCommentType.SYSTEM) - .comment(JacksonUtil.newObjectNode().put("text", - String.format("User %s deleted his comment", user.getName()))); - - alarmCommentService.createOrUpdateAlarmComment(alarm.getTenantId(), commentDeletedComment.build()); } } diff --git a/application/src/test/java/org/thingsboard/server/service/entitiy/alarmComment/DefaultTbAlarmCommentServiceTest.java b/application/src/test/java/org/thingsboard/server/service/entitiy/alarmComment/DefaultTbAlarmCommentServiceTest.java index 485049bfd6..f00008fc5e 100644 --- a/application/src/test/java/org/thingsboard/server/service/entitiy/alarmComment/DefaultTbAlarmCommentServiceTest.java +++ b/application/src/test/java/org/thingsboard/server/service/entitiy/alarmComment/DefaultTbAlarmCommentServiceTest.java @@ -86,10 +86,11 @@ public class DefaultTbAlarmCommentServiceTest { @Test public void testDelete() { var alarmId = new AlarmId(UUID.randomUUID()); - var alarmCommentId = new AlarmCommentId(UUID.randomUUID()); + var alarmComment = new AlarmComment(); + alarmComment.setAlarmId(alarmId); - doNothing().when(alarmCommentService).deleteAlarmComment(Mockito.any(), eq(alarmCommentId)); - service.deleteAlarmComment(new Alarm(alarmId), new AlarmComment(alarmCommentId), new User()); + doNothing().when(alarmCommentService).deleteAlarmComment(Mockito.any(), eq(alarmComment), Mockito.any()); + service.deleteAlarmComment(new Alarm(alarmId), new AlarmComment(), new User()); verify(notificationEntityService, times(1)).notifyAlarmComment(any(), any(), any(), any()); } diff --git a/common/dao-api/src/main/java/org/thingsboard/server/dao/alarm/AlarmCommentService.java b/common/dao-api/src/main/java/org/thingsboard/server/dao/alarm/AlarmCommentService.java index 81795c092d..3aa2972b14 100644 --- a/common/dao-api/src/main/java/org/thingsboard/server/dao/alarm/AlarmCommentService.java +++ b/common/dao-api/src/main/java/org/thingsboard/server/dao/alarm/AlarmCommentService.java @@ -16,6 +16,7 @@ package org.thingsboard.server.dao.alarm; import com.google.common.util.concurrent.ListenableFuture; +import org.thingsboard.server.common.data.User; import org.thingsboard.server.common.data.alarm.AlarmComment; import org.thingsboard.server.common.data.alarm.AlarmCommentInfo; import org.thingsboard.server.common.data.id.AlarmCommentId; @@ -27,7 +28,7 @@ import org.thingsboard.server.common.data.page.PageLink; public interface AlarmCommentService { AlarmComment createOrUpdateAlarmComment(TenantId tenantId, AlarmComment alarmComment); - void deleteAlarmComment(TenantId tenantId, AlarmCommentId alarmCommentId); + void deleteAlarmComment(TenantId tenantId, AlarmComment alarmComment, User user); PageData findAlarmComments(TenantId tenantId, AlarmId alarmId, PageLink pageLink); diff --git a/dao/src/main/java/org/thingsboard/server/dao/alarm/BaseAlarmCommentService.java b/dao/src/main/java/org/thingsboard/server/dao/alarm/BaseAlarmCommentService.java index aefae8778d..3a0784407e 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/alarm/BaseAlarmCommentService.java +++ b/dao/src/main/java/org/thingsboard/server/dao/alarm/BaseAlarmCommentService.java @@ -22,12 +22,16 @@ import com.google.common.util.concurrent.ListenableFuture; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.thingsboard.common.util.JacksonUtil; +import org.thingsboard.server.common.data.User; import org.thingsboard.server.common.data.alarm.AlarmComment; import org.thingsboard.server.common.data.alarm.AlarmCommentInfo; import org.thingsboard.server.common.data.alarm.AlarmCommentType; import org.thingsboard.server.common.data.id.AlarmCommentId; import org.thingsboard.server.common.data.id.AlarmId; +import org.thingsboard.server.common.data.id.CustomerId; import org.thingsboard.server.common.data.id.TenantId; +import org.thingsboard.server.common.data.id.UserId; import org.thingsboard.server.common.data.page.PageData; import org.thingsboard.server.common.data.page.PageLink; import org.thingsboard.server.dao.entity.AbstractEntityService; @@ -58,9 +62,20 @@ public class BaseAlarmCommentService extends AbstractEntityService implements Al } @Override - public void deleteAlarmComment(TenantId tenantId, AlarmCommentId alarmCommentId) { - log.debug("Deleting Alarm Comment with id: {}", alarmCommentId); - alarmCommentDao.deleteAlarmComment(tenantId, alarmCommentId); + public void deleteAlarmComment(TenantId tenantId, AlarmComment alarmComment, User user) { + log.debug("Deleting Alarm Comment: {}", alarmComment); + + if (alarmComment.getType() == AlarmCommentType.OTHER) { + alarmComment.setType(AlarmCommentType.SYSTEM); + alarmComment.setUserId(null); + alarmComment.setComment(JacksonUtil.newObjectNode().put("text", + String.format("User %s deleted his comment", + (user.getFirstName() == null || user.getLastName() == null) ? user.getName() : user.getFirstName() + " " + user.getLastName()))); + alarmCommentDao.save(tenantId, alarmComment); + } + else { + alarmCommentDao.deleteAlarmComment(tenantId, alarmComment.getId()); + } } @Override diff --git a/dao/src/test/java/org/thingsboard/server/dao/service/BaseAlarmCommentServiceTest.java b/dao/src/test/java/org/thingsboard/server/dao/service/BaseAlarmCommentServiceTest.java index 688793d6c6..ea7e19c058 100644 --- a/dao/src/test/java/org/thingsboard/server/dao/service/BaseAlarmCommentServiceTest.java +++ b/dao/src/test/java/org/thingsboard/server/dao/service/BaseAlarmCommentServiceTest.java @@ -155,7 +155,7 @@ public abstract class BaseAlarmCommentServiceTest extends AbstractServiceTest { Assert.assertNotNull(createdComment); Assert.assertNotNull(createdComment.getId()); - alarmCommentService.deleteAlarmComment(tenantId, createdComment.getId()); + alarmCommentService.deleteAlarmComment(tenantId, createdComment, user); AlarmComment fetched = alarmCommentService.findAlarmCommentByIdAsync(tenantId, createdComment.getId()).get();