From beaa064a4414cec137cef3b0b9a1c301b34715dd Mon Sep 17 00:00:00 2001 From: nickAS21 Date: Mon, 30 May 2022 19:29:13 +0300 Subject: [PATCH] refactoring: OtaPackageController: saveOtaPackageData, RuleChainController: fix bug test delete --- .../controller/OtaPackageController.java | 31 +++++-------------- .../controller/RuleChainController.java | 8 ++--- .../DefaultTbOtaPackageService.java | 29 ++++++++++++----- .../TbOtaPackageService.java | 6 ++-- .../DefaultTbRuleChainNotifyService.java | 23 ++++++++++++-- .../ruleChain/TbRuleChainNotifyService.java | 5 +-- 6 files changed, 58 insertions(+), 44 deletions(-) diff --git a/application/src/main/java/org/thingsboard/server/controller/OtaPackageController.java b/application/src/main/java/org/thingsboard/server/controller/OtaPackageController.java index 36de0f4c76..59c74e5f17 100644 --- a/application/src/main/java/org/thingsboard/server/controller/OtaPackageController.java +++ b/application/src/main/java/org/thingsboard/server/controller/OtaPackageController.java @@ -182,36 +182,21 @@ public class OtaPackageController extends BaseController { @RequestPart MultipartFile file) throws ThingsboardException { checkParameter(OTA_PACKAGE_ID, strOtaPackageId); checkParameter(CHECKSUM_ALGORITHM, checksumAlgorithmStr); + OtaPackageId otaPackageId = new OtaPackageId(toUUID(strOtaPackageId)); + OtaPackageInfo otaPackageInfo = checkOtaPackageInfoId(otaPackageId, Operation.READ); try { - OtaPackageId otaPackageId = new OtaPackageId(toUUID(strOtaPackageId)); - OtaPackageInfo otaPackageInfo = checkOtaPackageInfoId(otaPackageId, Operation.READ); - OtaPackage otaPackage = new OtaPackage(otaPackageId); - otaPackage.setCreatedTime(otaPackageInfo.getCreatedTime()); - otaPackage.setTenantId(getTenantId()); - otaPackage.setDeviceProfileId(otaPackageInfo.getDeviceProfileId()); - otaPackage.setType(otaPackageInfo.getType()); - otaPackage.setTitle(otaPackageInfo.getTitle()); - otaPackage.setVersion(otaPackageInfo.getVersion()); - otaPackage.setTag(otaPackageInfo.getTag()); - otaPackage.setAdditionalInfo(otaPackageInfo.getAdditionalInfo()); ChecksumAlgorithm checksumAlgorithm = ChecksumAlgorithm.valueOf(checksumAlgorithmStr.toUpperCase()); - - byte[] bytes = file.getBytes(); + byte[] data = file.getBytes(); if (StringUtils.isEmpty(checksum)) { - checksum = otaPackageService.generateChecksum(checksumAlgorithm, ByteBuffer.wrap(bytes)); + checksum = otaPackageService.generateChecksum(checksumAlgorithm, ByteBuffer.wrap(data)); } - - otaPackage.setChecksumAlgorithm(checksumAlgorithm); - otaPackage.setChecksum(checksum); - otaPackage.setFileName(file.getOriginalFilename()); - otaPackage.setContentType(file.getContentType()); - otaPackage.setData(ByteBuffer.wrap(bytes)); - otaPackage.setDataSize((long) bytes.length); - return tbOtaPackageService.saveOtaPackageData(otaPackageId, otaPackage, getCurrentUser(), null); + return tbOtaPackageService.saveOtaPackageData(otaPackageInfo, checksum, checksumAlgorithm, + data, file.getOriginalFilename(), file.getContentType(), getCurrentUser(), null); } catch (Exception e) { - tbOtaPackageService.saveOtaPackageData(null, null, getCurrentUser(), e); + tbOtaPackageService.saveOtaPackageData(otaPackageInfo, null, null, + null, null, null, getCurrentUser(), e); throw handleException(e); } } diff --git a/application/src/main/java/org/thingsboard/server/controller/RuleChainController.java b/application/src/main/java/org/thingsboard/server/controller/RuleChainController.java index c6cc7eb086..ba54989653 100644 --- a/application/src/main/java/org/thingsboard/server/controller/RuleChainController.java +++ b/application/src/main/java/org/thingsboard/server/controller/RuleChainController.java @@ -43,7 +43,6 @@ import org.thingsboard.server.actors.tenant.DebugTbRateLimits; import org.thingsboard.server.common.data.DataConstants; import org.thingsboard.server.common.data.Event; import org.thingsboard.server.common.data.StringUtils; -import org.thingsboard.server.common.data.audit.ActionType; import org.thingsboard.server.common.data.edge.Edge; import org.thingsboard.server.common.data.exception.ThingsboardException; import org.thingsboard.server.common.data.id.EdgeId; @@ -300,7 +299,6 @@ public class RuleChainController extends BaseController { getCurrentUser()); } - @ApiOperation(value = "Get Rule Chains (getRuleChains)", notes = "Returns a page of Rule Chains owned by tenant. " + RULE_CHAIN_DESCRIPTION + PAGE_DATA_PARAMETERS + TENANT_AUTHORITY_PARAGRAPH) @PreAuthorize("hasAuthority('TENANT_ADMIN')") @@ -538,8 +536,7 @@ public class RuleChainController extends BaseController { RuleChainId ruleChainId = new RuleChainId(toUUID(strRuleChainId)); RuleChain ruleChain = checkRuleChain(ruleChainId, Operation.READ); - return tbRuleChainNotifyService.assignUnassignRuleChainToEdge(getTenantId(), ruleChain, edge, - ActionType.ASSIGNED_TO_EDGE, getCurrentUser()); + return tbRuleChainNotifyService.assignRuleChainToEdge(getTenantId(), ruleChain, edge, getCurrentUser()); } @ApiOperation(value = "Unassign rule chain from edge (unassignRuleChainFromEdge)", @@ -561,8 +558,7 @@ public class RuleChainController extends BaseController { RuleChainId ruleChainId = new RuleChainId(toUUID(strRuleChainId)); RuleChain ruleChain = checkRuleChain(ruleChainId, Operation.READ); - return tbRuleChainNotifyService.assignUnassignRuleChainToEdge(getTenantId(), ruleChain, edge, - ActionType.UNASSIGNED_FROM_EDGE, getCurrentUser()); + return tbRuleChainNotifyService.unassignRuleChainToEdge(getTenantId(), ruleChain, edge, getCurrentUser()); } @ApiOperation(value = "Get Edge Rule Chains (getEdgeRuleChains)", diff --git a/application/src/main/java/org/thingsboard/server/service/entitiy/otaPackageController/DefaultTbOtaPackageService.java b/application/src/main/java/org/thingsboard/server/service/entitiy/otaPackageController/DefaultTbOtaPackageService.java index 98083edca0..09aa3cdbb2 100644 --- a/application/src/main/java/org/thingsboard/server/service/entitiy/otaPackageController/DefaultTbOtaPackageService.java +++ b/application/src/main/java/org/thingsboard/server/service/entitiy/otaPackageController/DefaultTbOtaPackageService.java @@ -24,13 +24,15 @@ import org.thingsboard.server.common.data.OtaPackageInfo; import org.thingsboard.server.common.data.SaveOtaPackageInfoRequest; import org.thingsboard.server.common.data.audit.ActionType; import org.thingsboard.server.common.data.exception.ThingsboardException; -import org.thingsboard.server.common.data.id.EntityId; import org.thingsboard.server.common.data.id.OtaPackageId; import org.thingsboard.server.common.data.id.TenantId; +import org.thingsboard.server.common.data.ota.ChecksumAlgorithm; import org.thingsboard.server.queue.util.TbCoreComponent; import org.thingsboard.server.service.entitiy.AbstractTbEntityService; import org.thingsboard.server.service.security.model.SecurityUser; +import java.nio.ByteBuffer; + @Service @TbCoreComponent @AllArgsConstructor @@ -65,15 +67,30 @@ public class DefaultTbOtaPackageService extends AbstractTbEntityService implemen ActionType.DELETED, user, e, otaPackageInfo.getId().toString()); throw handleException(e); } - - } @Override - public OtaPackageInfo saveOtaPackageData(EntityId otaPackageId, OtaPackage otaPackage, SecurityUser user, Exception e) throws ThingsboardException { - TenantId tenantId = otaPackage.getTenantId(); + public OtaPackageInfo saveOtaPackageData(OtaPackageInfo otaPackageInfo, String checksum, ChecksumAlgorithm checksumAlgorithm, + byte[] data, String filename, String contentType, SecurityUser user, Exception e) throws ThingsboardException { + TenantId tenantId = otaPackageInfo.getTenantId(); + OtaPackageId otaPackageId = otaPackageInfo.getId(); if (e == null) { try { + OtaPackage otaPackage = new OtaPackage(otaPackageId); + otaPackage.setCreatedTime(otaPackageInfo.getCreatedTime()); + otaPackage.setTenantId(tenantId); + otaPackage.setDeviceProfileId(otaPackageInfo.getDeviceProfileId()); + otaPackage.setType(otaPackageInfo.getType()); + otaPackage.setTitle(otaPackageInfo.getTitle()); + otaPackage.setVersion(otaPackageInfo.getVersion()); + otaPackage.setTag(otaPackageInfo.getTag()); + otaPackage.setAdditionalInfo(otaPackageInfo.getAdditionalInfo()); + otaPackage.setChecksumAlgorithm(checksumAlgorithm); + otaPackage.setChecksum(checksum); + otaPackage.setFileName(filename); + otaPackage.setContentType(contentType); + otaPackage.setData(ByteBuffer.wrap(data)); + otaPackage.setDataSize((long) data.length); OtaPackageInfo savedOtaPackage = otaPackageService.saveOtaPackage(otaPackage); notificationEntityService.notifyEntity(tenantId, savedOtaPackage.getId(), savedOtaPackage, null, ActionType.UPDATED, user, null); @@ -89,6 +106,4 @@ public class DefaultTbOtaPackageService extends AbstractTbEntityService implemen throw handleException(e); } } - - } diff --git a/application/src/main/java/org/thingsboard/server/service/entitiy/otaPackageController/TbOtaPackageService.java b/application/src/main/java/org/thingsboard/server/service/entitiy/otaPackageController/TbOtaPackageService.java index f199d64e0e..7581860d73 100644 --- a/application/src/main/java/org/thingsboard/server/service/entitiy/otaPackageController/TbOtaPackageService.java +++ b/application/src/main/java/org/thingsboard/server/service/entitiy/otaPackageController/TbOtaPackageService.java @@ -15,11 +15,10 @@ */ package org.thingsboard.server.service.entitiy.otaPackageController; -import org.thingsboard.server.common.data.OtaPackage; import org.thingsboard.server.common.data.OtaPackageInfo; import org.thingsboard.server.common.data.SaveOtaPackageInfoRequest; import org.thingsboard.server.common.data.exception.ThingsboardException; -import org.thingsboard.server.common.data.id.EntityId; +import org.thingsboard.server.common.data.ota.ChecksumAlgorithm; import org.thingsboard.server.service.security.model.SecurityUser; public interface TbOtaPackageService { @@ -28,5 +27,6 @@ public interface TbOtaPackageService { void delete(OtaPackageInfo otaPackageInfo, SecurityUser user) throws ThingsboardException; - OtaPackageInfo saveOtaPackageData(EntityId otaPackageId, OtaPackage otaPackage, SecurityUser user, Exception e) throws ThingsboardException; + OtaPackageInfo saveOtaPackageData(OtaPackageInfo otaPackageInfo, String checksum, ChecksumAlgorithm checksumAlgorithm, + byte[] data, String filename, String contentType, SecurityUser securityUser, Exception e) throws ThingsboardException; } diff --git a/application/src/main/java/org/thingsboard/server/service/entitiy/ruleChain/DefaultTbRuleChainNotifyService.java b/application/src/main/java/org/thingsboard/server/service/entitiy/ruleChain/DefaultTbRuleChainNotifyService.java index 6c4059806f..fc0dc73a77 100644 --- a/application/src/main/java/org/thingsboard/server/service/entitiy/ruleChain/DefaultTbRuleChainNotifyService.java +++ b/application/src/main/java/org/thingsboard/server/service/entitiy/ruleChain/DefaultTbRuleChainNotifyService.java @@ -202,18 +202,35 @@ public class DefaultTbRuleChainNotifyService extends AbstractTbEntityService imp } @Override - public RuleChain assignUnassignRuleChainToEdge(TenantId tenantId, RuleChain ruleChain, Edge edge, ActionType actionType, SecurityUser user) throws ThingsboardException { + public RuleChain assignRuleChainToEdge(TenantId tenantId, RuleChain ruleChain, Edge edge, SecurityUser user) throws ThingsboardException { RuleChainId ruleChainId = ruleChain.getId(); try { RuleChain savedRuleChain = checkNotNull(ruleChainService.assignRuleChainToEdge(tenantId, ruleChainId, edge.getId())); notificationEntityService.notifyAssignOrUnassignEntityToEdge(tenantId, ruleChainId, null, edge.getId(), - savedRuleChain, actionType, + savedRuleChain, ActionType.ASSIGNED_TO_EDGE, user, ruleChainId.toString(), edge.getId().toString(), edge.getName()); return savedRuleChain; } catch (Exception e) { notificationEntityService.notifyCreateOrUpdateOrDelete(tenantId, null, emptyId(EntityType.RULE_CHAIN), - null, user, actionType, false, e, ruleChainId.toString(), edge.getId().toString()); + null, user, ActionType.ASSIGNED_TO_EDGE, false, e, ruleChainId.toString(), edge.getId().toString()); + throw handleException(e); + } + } + + @Override + public RuleChain unassignRuleChainToEdge(TenantId tenantId, RuleChain ruleChain, Edge edge, SecurityUser user) throws ThingsboardException { + RuleChainId ruleChainId = ruleChain.getId(); + try { + RuleChain savedRuleChain = checkNotNull(ruleChainService.unassignRuleChainFromEdge(tenantId, ruleChainId, edge.getId(), false)); + notificationEntityService.notifyAssignOrUnassignEntityToEdge(tenantId, ruleChainId, + null, edge.getId(), + savedRuleChain, ActionType.UNASSIGNED_FROM_EDGE, + user, ruleChainId.toString(), edge.getId().toString(), edge.getName()); + return savedRuleChain; + } catch (Exception e) { + notificationEntityService.notifyCreateOrUpdateOrDelete(tenantId, null, emptyId(EntityType.RULE_CHAIN), + null, user, ActionType.UNASSIGNED_FROM_EDGE, false, e, ruleChainId.toString(), edge.getId().toString()); throw handleException(e); } } diff --git a/application/src/main/java/org/thingsboard/server/service/entitiy/ruleChain/TbRuleChainNotifyService.java b/application/src/main/java/org/thingsboard/server/service/entitiy/ruleChain/TbRuleChainNotifyService.java index a6f5011507..951758ff0b 100644 --- a/application/src/main/java/org/thingsboard/server/service/entitiy/ruleChain/TbRuleChainNotifyService.java +++ b/application/src/main/java/org/thingsboard/server/service/entitiy/ruleChain/TbRuleChainNotifyService.java @@ -15,7 +15,6 @@ */ package org.thingsboard.server.service.entitiy.ruleChain; -import org.thingsboard.server.common.data.audit.ActionType; import org.thingsboard.server.common.data.edge.Edge; import org.thingsboard.server.common.data.exception.ThingsboardException; import org.thingsboard.server.common.data.id.TenantId; @@ -34,7 +33,9 @@ public interface TbRuleChainNotifyService extends SimpleTbEntityService