Merge pull request #6551 from thingsboard/refactoring_03_DashboardController
[3.4] refactoring_03: - Dashboard controller
This commit is contained in:
commit
1ff24f149e
@ -32,22 +32,16 @@ import org.springframework.web.bind.annotation.ResponseBody;
|
||||
import org.springframework.web.bind.annotation.ResponseStatus;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import org.thingsboard.server.common.data.Customer;
|
||||
import org.thingsboard.server.common.data.EntityType;
|
||||
import org.thingsboard.server.common.data.audit.ActionType;
|
||||
import org.thingsboard.server.common.data.exception.ThingsboardException;
|
||||
import org.thingsboard.server.common.data.id.CustomerId;
|
||||
import org.thingsboard.server.common.data.id.EdgeId;
|
||||
import org.thingsboard.server.common.data.id.TenantId;
|
||||
import org.thingsboard.server.common.data.page.PageData;
|
||||
import org.thingsboard.server.common.data.page.PageLink;
|
||||
import org.thingsboard.server.common.data.plugin.ComponentLifecycleEvent;
|
||||
import org.thingsboard.server.queue.util.TbCoreComponent;
|
||||
import org.thingsboard.server.service.entitiy.customer.TbCustomerService;
|
||||
import org.thingsboard.server.service.security.permission.Operation;
|
||||
import org.thingsboard.server.service.security.permission.Resource;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import static org.thingsboard.server.controller.ControllerConstants.CUSTOMER_ID;
|
||||
import static org.thingsboard.server.controller.ControllerConstants.CUSTOMER_ID_PARAM_DESCRIPTION;
|
||||
import static org.thingsboard.server.controller.ControllerConstants.CUSTOMER_SORT_PROPERTY_ALLOWABLE_VALUES;
|
||||
|
||||
@ -22,6 +22,7 @@ import io.swagger.annotations.ApiParam;
|
||||
import io.swagger.annotations.ApiResponse;
|
||||
import io.swagger.annotations.Example;
|
||||
import io.swagger.annotations.ExampleProperty;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.MediaType;
|
||||
@ -38,15 +39,12 @@ import org.thingsboard.common.util.JacksonUtil;
|
||||
import org.thingsboard.server.common.data.Customer;
|
||||
import org.thingsboard.server.common.data.Dashboard;
|
||||
import org.thingsboard.server.common.data.DashboardInfo;
|
||||
import org.thingsboard.server.common.data.EntityType;
|
||||
import org.thingsboard.server.common.data.HasName;
|
||||
import org.thingsboard.server.common.data.HomeDashboard;
|
||||
import org.thingsboard.server.common.data.HomeDashboardInfo;
|
||||
import org.thingsboard.server.common.data.ShortCustomerInfo;
|
||||
import org.thingsboard.server.common.data.Tenant;
|
||||
import org.thingsboard.server.common.data.User;
|
||||
import org.thingsboard.server.common.data.audit.ActionType;
|
||||
import org.thingsboard.server.common.data.edge.Edge;
|
||||
import org.thingsboard.server.common.data.edge.EdgeEventActionType;
|
||||
import org.thingsboard.server.common.data.exception.ThingsboardException;
|
||||
import org.thingsboard.server.common.data.id.CustomerId;
|
||||
import org.thingsboard.server.common.data.id.DashboardId;
|
||||
@ -55,6 +53,7 @@ import org.thingsboard.server.common.data.id.TenantId;
|
||||
import org.thingsboard.server.common.data.page.PageData;
|
||||
import org.thingsboard.server.common.data.page.PageLink;
|
||||
import org.thingsboard.server.queue.util.TbCoreComponent;
|
||||
import org.thingsboard.server.service.entitiy.dashboard.TbDashboardService;
|
||||
import org.thingsboard.server.service.security.model.SecurityUser;
|
||||
import org.thingsboard.server.service.security.permission.Operation;
|
||||
import org.thingsboard.server.service.security.permission.Resource;
|
||||
@ -62,6 +61,7 @@ import org.thingsboard.server.service.security.permission.Resource;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static org.thingsboard.server.controller.ControllerConstants.CUSTOMER_ID;
|
||||
@ -90,9 +90,11 @@ import static org.thingsboard.server.controller.ControllerConstants.UUID_WIKI_LI
|
||||
|
||||
@RestController
|
||||
@TbCoreComponent
|
||||
@RequiredArgsConstructor
|
||||
@RequestMapping("/api")
|
||||
public class DashboardController extends BaseController {
|
||||
|
||||
private final TbDashboardService tbDashboardService;
|
||||
public static final String DASHBOARD_ID = "dashboardId";
|
||||
|
||||
private static final String HOME_DASHBOARD_ID = "homeDashboardId";
|
||||
@ -180,28 +182,9 @@ public class DashboardController extends BaseController {
|
||||
public Dashboard saveDashboard(
|
||||
@ApiParam(value = "A JSON value representing the dashboard.")
|
||||
@RequestBody Dashboard dashboard) throws ThingsboardException {
|
||||
try {
|
||||
dashboard.setTenantId(getCurrentUser().getTenantId());
|
||||
|
||||
checkEntity(dashboard.getId(), dashboard, Resource.DASHBOARD);
|
||||
|
||||
Dashboard savedDashboard = checkNotNull(dashboardService.saveDashboard(dashboard));
|
||||
|
||||
logEntityAction(savedDashboard.getId(), savedDashboard,
|
||||
null,
|
||||
dashboard.getId() == null ? ActionType.ADDED : ActionType.UPDATED, null);
|
||||
|
||||
if (dashboard.getId() != null) {
|
||||
sendEntityNotificationMsg(savedDashboard.getTenantId(), savedDashboard.getId(), EdgeEventActionType.UPDATED);
|
||||
}
|
||||
|
||||
return savedDashboard;
|
||||
} catch (Exception e) {
|
||||
logEntityAction(emptyId(EntityType.DASHBOARD), dashboard,
|
||||
null, dashboard.getId() == null ? ActionType.ADDED : ActionType.UPDATED, e);
|
||||
|
||||
throw handleException(e);
|
||||
}
|
||||
return tbDashboardService.save(dashboard, getCurrentUser());
|
||||
}
|
||||
|
||||
@ApiOperation(value = "Delete the Dashboard (deleteDashboard)",
|
||||
@ -213,28 +196,9 @@ public class DashboardController extends BaseController {
|
||||
@ApiParam(value = DASHBOARD_ID_PARAM_DESCRIPTION)
|
||||
@PathVariable(DASHBOARD_ID) String strDashboardId) throws ThingsboardException {
|
||||
checkParameter(DASHBOARD_ID, strDashboardId);
|
||||
try {
|
||||
DashboardId dashboardId = new DashboardId(toUUID(strDashboardId));
|
||||
Dashboard dashboard = checkDashboardId(dashboardId, Operation.DELETE);
|
||||
|
||||
List<EdgeId> relatedEdgeIds = findRelatedEdgeIds(getTenantId(), dashboardId);
|
||||
|
||||
dashboardService.deleteDashboard(getCurrentUser().getTenantId(), dashboardId);
|
||||
|
||||
logEntityAction(dashboardId, dashboard,
|
||||
null,
|
||||
ActionType.DELETED, null, strDashboardId);
|
||||
|
||||
sendDeleteNotificationMsg(getTenantId(), dashboardId, relatedEdgeIds);
|
||||
} catch (Exception e) {
|
||||
|
||||
logEntityAction(emptyId(EntityType.DASHBOARD),
|
||||
null,
|
||||
null,
|
||||
ActionType.DELETED, e, strDashboardId);
|
||||
|
||||
throw handleException(e);
|
||||
}
|
||||
tbDashboardService.delete(dashboard, getCurrentUser());
|
||||
}
|
||||
|
||||
@ApiOperation(value = "Assign the Dashboard (assignDashboardToCustomer)",
|
||||
@ -251,30 +215,13 @@ public class DashboardController extends BaseController {
|
||||
@PathVariable(DASHBOARD_ID) String strDashboardId) throws ThingsboardException {
|
||||
checkParameter(CUSTOMER_ID, strCustomerId);
|
||||
checkParameter(DASHBOARD_ID, strDashboardId);
|
||||
try {
|
||||
|
||||
CustomerId customerId = new CustomerId(toUUID(strCustomerId));
|
||||
Customer customer = checkCustomerId(customerId, Operation.READ);
|
||||
|
||||
DashboardId dashboardId = new DashboardId(toUUID(strDashboardId));
|
||||
checkDashboardId(dashboardId, Operation.ASSIGN_TO_CUSTOMER);
|
||||
|
||||
Dashboard savedDashboard = checkNotNull(dashboardService.assignDashboardToCustomer(getCurrentUser().getTenantId(), dashboardId, customerId));
|
||||
|
||||
logEntityAction(dashboardId, savedDashboard,
|
||||
customerId,
|
||||
ActionType.ASSIGNED_TO_CUSTOMER, null, strDashboardId, strCustomerId, customer.getName());
|
||||
|
||||
sendEntityAssignToCustomerNotificationMsg(savedDashboard.getTenantId(), savedDashboard.getId(), customerId, EdgeEventActionType.ASSIGNED_TO_CUSTOMER);
|
||||
|
||||
return savedDashboard;
|
||||
} catch (Exception e) {
|
||||
|
||||
logEntityAction(emptyId(EntityType.DASHBOARD), null,
|
||||
null,
|
||||
ActionType.ASSIGNED_TO_CUSTOMER, e, strDashboardId, strCustomerId);
|
||||
|
||||
throw handleException(e);
|
||||
}
|
||||
return tbDashboardService.assignDashboardToCustomer(dashboardId, customer, getCurrentUser());
|
||||
}
|
||||
|
||||
@ApiOperation(value = "Unassign the Dashboard (unassignDashboardFromCustomer)",
|
||||
@ -291,29 +238,11 @@ public class DashboardController extends BaseController {
|
||||
@PathVariable(DASHBOARD_ID) String strDashboardId) throws ThingsboardException {
|
||||
checkParameter("customerId", strCustomerId);
|
||||
checkParameter(DASHBOARD_ID, strDashboardId);
|
||||
try {
|
||||
CustomerId customerId = new CustomerId(toUUID(strCustomerId));
|
||||
Customer customer = checkCustomerId(customerId, Operation.READ);
|
||||
DashboardId dashboardId = new DashboardId(toUUID(strDashboardId));
|
||||
Dashboard dashboard = checkDashboardId(dashboardId, Operation.UNASSIGN_FROM_CUSTOMER);
|
||||
|
||||
Dashboard savedDashboard = checkNotNull(dashboardService.unassignDashboardFromCustomer(getCurrentUser().getTenantId(), dashboardId, customerId));
|
||||
|
||||
logEntityAction(dashboardId, dashboard,
|
||||
customerId,
|
||||
ActionType.UNASSIGNED_FROM_CUSTOMER, null, strDashboardId, customer.getId().toString(), customer.getName());
|
||||
|
||||
sendEntityAssignToCustomerNotificationMsg(savedDashboard.getTenantId(), savedDashboard.getId(), customerId, EdgeEventActionType.UNASSIGNED_FROM_CUSTOMER);
|
||||
|
||||
return savedDashboard;
|
||||
} catch (Exception e) {
|
||||
|
||||
logEntityAction(emptyId(EntityType.DASHBOARD), null,
|
||||
null,
|
||||
ActionType.UNASSIGNED_FROM_CUSTOMER, e, strDashboardId);
|
||||
|
||||
throw handleException(e);
|
||||
}
|
||||
return tbDashboardService.unassignDashboardFromCustomer(dashboard, customer, getCurrentUser());
|
||||
}
|
||||
|
||||
@ApiOperation(value = "Update the Dashboard Customers (updateDashboardCustomers)",
|
||||
@ -331,64 +260,10 @@ public class DashboardController extends BaseController {
|
||||
@ApiParam(value = "JSON array with the list of customer ids, or empty to remove all customers")
|
||||
@RequestBody(required = false) String[] strCustomerIds) throws ThingsboardException {
|
||||
checkParameter(DASHBOARD_ID, strDashboardId);
|
||||
try {
|
||||
DashboardId dashboardId = new DashboardId(toUUID(strDashboardId));
|
||||
Dashboard dashboard = checkDashboardId(dashboardId, Operation.ASSIGN_TO_CUSTOMER);
|
||||
|
||||
Set<CustomerId> customerIds = new HashSet<>();
|
||||
if (strCustomerIds != null) {
|
||||
for (String strCustomerId : strCustomerIds) {
|
||||
customerIds.add(new CustomerId(toUUID(strCustomerId)));
|
||||
}
|
||||
}
|
||||
|
||||
Set<CustomerId> addedCustomerIds = new HashSet<>();
|
||||
Set<CustomerId> removedCustomerIds = new HashSet<>();
|
||||
for (CustomerId customerId : customerIds) {
|
||||
if (!dashboard.isAssignedToCustomer(customerId)) {
|
||||
addedCustomerIds.add(customerId);
|
||||
}
|
||||
}
|
||||
|
||||
Set<ShortCustomerInfo> assignedCustomers = dashboard.getAssignedCustomers();
|
||||
if (assignedCustomers != null) {
|
||||
for (ShortCustomerInfo customerInfo : assignedCustomers) {
|
||||
if (!customerIds.contains(customerInfo.getCustomerId())) {
|
||||
removedCustomerIds.add(customerInfo.getCustomerId());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (addedCustomerIds.isEmpty() && removedCustomerIds.isEmpty()) {
|
||||
return dashboard;
|
||||
} else {
|
||||
Dashboard savedDashboard = null;
|
||||
for (CustomerId customerId : addedCustomerIds) {
|
||||
savedDashboard = checkNotNull(dashboardService.assignDashboardToCustomer(getCurrentUser().getTenantId(), dashboardId, customerId));
|
||||
ShortCustomerInfo customerInfo = savedDashboard.getAssignedCustomerInfo(customerId);
|
||||
logEntityAction(dashboardId, savedDashboard,
|
||||
customerId,
|
||||
ActionType.ASSIGNED_TO_CUSTOMER, null, strDashboardId, customerId.toString(), customerInfo.getTitle());
|
||||
sendEntityAssignToCustomerNotificationMsg(savedDashboard.getTenantId(), savedDashboard.getId(), customerId, EdgeEventActionType.ASSIGNED_TO_CUSTOMER);
|
||||
}
|
||||
for (CustomerId customerId : removedCustomerIds) {
|
||||
ShortCustomerInfo customerInfo = dashboard.getAssignedCustomerInfo(customerId);
|
||||
savedDashboard = checkNotNull(dashboardService.unassignDashboardFromCustomer(getCurrentUser().getTenantId(), dashboardId, customerId));
|
||||
logEntityAction(dashboardId, dashboard,
|
||||
customerId,
|
||||
ActionType.UNASSIGNED_FROM_CUSTOMER, null, strDashboardId, customerId.toString(), customerInfo.getTitle());
|
||||
sendEntityAssignToCustomerNotificationMsg(savedDashboard.getTenantId(), savedDashboard.getId(), customerId, EdgeEventActionType.UNASSIGNED_FROM_CUSTOMER);
|
||||
}
|
||||
return savedDashboard;
|
||||
}
|
||||
} catch (Exception e) {
|
||||
|
||||
logEntityAction(emptyId(EntityType.DASHBOARD), null,
|
||||
null,
|
||||
ActionType.ASSIGNED_TO_CUSTOMER, e, strDashboardId);
|
||||
|
||||
throw handleException(e);
|
||||
}
|
||||
Set<CustomerId> customerIds = customerIdFromStr(strCustomerIds, dashboard);
|
||||
return tbDashboardService.updateDashboardCustomers(dashboard, customerIds, getCurrentUser());
|
||||
}
|
||||
|
||||
@ApiOperation(value = "Adds the Dashboard Customers (addDashboardCustomers)",
|
||||
@ -405,42 +280,10 @@ public class DashboardController extends BaseController {
|
||||
@ApiParam(value = "JSON array with the list of customer ids")
|
||||
@RequestBody String[] strCustomerIds) throws ThingsboardException {
|
||||
checkParameter(DASHBOARD_ID, strDashboardId);
|
||||
try {
|
||||
DashboardId dashboardId = new DashboardId(toUUID(strDashboardId));
|
||||
Dashboard dashboard = checkDashboardId(dashboardId, Operation.ASSIGN_TO_CUSTOMER);
|
||||
|
||||
Set<CustomerId> customerIds = new HashSet<>();
|
||||
if (strCustomerIds != null) {
|
||||
for (String strCustomerId : strCustomerIds) {
|
||||
CustomerId customerId = new CustomerId(toUUID(strCustomerId));
|
||||
if (!dashboard.isAssignedToCustomer(customerId)) {
|
||||
customerIds.add(customerId);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (customerIds.isEmpty()) {
|
||||
return dashboard;
|
||||
} else {
|
||||
Dashboard savedDashboard = null;
|
||||
for (CustomerId customerId : customerIds) {
|
||||
savedDashboard = checkNotNull(dashboardService.assignDashboardToCustomer(getCurrentUser().getTenantId(), dashboardId, customerId));
|
||||
ShortCustomerInfo customerInfo = savedDashboard.getAssignedCustomerInfo(customerId);
|
||||
logEntityAction(dashboardId, savedDashboard,
|
||||
customerId,
|
||||
ActionType.ASSIGNED_TO_CUSTOMER, null, strDashboardId, customerId.toString(), customerInfo.getTitle());
|
||||
sendEntityAssignToCustomerNotificationMsg(savedDashboard.getTenantId(), savedDashboard.getId(), customerId, EdgeEventActionType.ASSIGNED_TO_CUSTOMER);
|
||||
}
|
||||
return savedDashboard;
|
||||
}
|
||||
} catch (Exception e) {
|
||||
|
||||
logEntityAction(emptyId(EntityType.DASHBOARD), null,
|
||||
null,
|
||||
ActionType.ASSIGNED_TO_CUSTOMER, e, strDashboardId);
|
||||
|
||||
throw handleException(e);
|
||||
}
|
||||
Set<CustomerId> customerIds = customerIdFromStr(strCustomerIds, dashboard);
|
||||
return tbDashboardService.addDashboardCustomers(dashboard, customerIds, getCurrentUser());
|
||||
}
|
||||
|
||||
@ApiOperation(value = "Remove the Dashboard Customers (removeDashboardCustomers)",
|
||||
@ -457,42 +300,10 @@ public class DashboardController extends BaseController {
|
||||
@ApiParam(value = "JSON array with the list of customer ids")
|
||||
@RequestBody String[] strCustomerIds) throws ThingsboardException {
|
||||
checkParameter(DASHBOARD_ID, strDashboardId);
|
||||
try {
|
||||
DashboardId dashboardId = new DashboardId(toUUID(strDashboardId));
|
||||
Dashboard dashboard = checkDashboardId(dashboardId, Operation.UNASSIGN_FROM_CUSTOMER);
|
||||
|
||||
Set<CustomerId> customerIds = new HashSet<>();
|
||||
if (strCustomerIds != null) {
|
||||
for (String strCustomerId : strCustomerIds) {
|
||||
CustomerId customerId = new CustomerId(toUUID(strCustomerId));
|
||||
if (dashboard.isAssignedToCustomer(customerId)) {
|
||||
customerIds.add(customerId);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (customerIds.isEmpty()) {
|
||||
return dashboard;
|
||||
} else {
|
||||
Dashboard savedDashboard = null;
|
||||
for (CustomerId customerId : customerIds) {
|
||||
ShortCustomerInfo customerInfo = dashboard.getAssignedCustomerInfo(customerId);
|
||||
savedDashboard = checkNotNull(dashboardService.unassignDashboardFromCustomer(getCurrentUser().getTenantId(), dashboardId, customerId));
|
||||
logEntityAction(dashboardId, dashboard,
|
||||
customerId,
|
||||
ActionType.UNASSIGNED_FROM_CUSTOMER, null, strDashboardId, customerId.toString(), customerInfo.getTitle());
|
||||
sendEntityAssignToCustomerNotificationMsg(savedDashboard.getTenantId(), savedDashboard.getId(), customerId, EdgeEventActionType.UNASSIGNED_FROM_CUSTOMER);
|
||||
}
|
||||
return savedDashboard;
|
||||
}
|
||||
} catch (Exception e) {
|
||||
|
||||
logEntityAction(emptyId(EntityType.DASHBOARD), null,
|
||||
null,
|
||||
ActionType.UNASSIGNED_FROM_CUSTOMER, e, strDashboardId);
|
||||
|
||||
throw handleException(e);
|
||||
}
|
||||
Set<CustomerId> customerIds = customerIdFromStr(strCustomerIds, dashboard);
|
||||
return tbDashboardService.removeDashboardCustomers(dashboard, customerIds, getCurrentUser());
|
||||
}
|
||||
|
||||
@ApiOperation(value = "Assign the Dashboard to Public Customer (assignDashboardToPublicCustomer)",
|
||||
@ -510,25 +321,9 @@ public class DashboardController extends BaseController {
|
||||
@ApiParam(value = DASHBOARD_ID_PARAM_DESCRIPTION)
|
||||
@PathVariable(DASHBOARD_ID) String strDashboardId) throws ThingsboardException {
|
||||
checkParameter(DASHBOARD_ID, strDashboardId);
|
||||
try {
|
||||
DashboardId dashboardId = new DashboardId(toUUID(strDashboardId));
|
||||
Dashboard dashboard = checkDashboardId(dashboardId, Operation.ASSIGN_TO_CUSTOMER);
|
||||
Customer publicCustomer = customerService.findOrCreatePublicCustomer(dashboard.getTenantId());
|
||||
Dashboard savedDashboard = checkNotNull(dashboardService.assignDashboardToCustomer(getCurrentUser().getTenantId(), dashboardId, publicCustomer.getId()));
|
||||
|
||||
logEntityAction(dashboardId, savedDashboard,
|
||||
publicCustomer.getId(),
|
||||
ActionType.ASSIGNED_TO_CUSTOMER, null, strDashboardId, publicCustomer.getId().toString(), publicCustomer.getName());
|
||||
|
||||
return savedDashboard;
|
||||
} catch (Exception e) {
|
||||
|
||||
logEntityAction(emptyId(EntityType.DASHBOARD), null,
|
||||
null,
|
||||
ActionType.ASSIGNED_TO_CUSTOMER, e, strDashboardId);
|
||||
|
||||
throw handleException(e);
|
||||
}
|
||||
checkDashboardId(dashboardId, Operation.ASSIGN_TO_CUSTOMER);
|
||||
return tbDashboardService.assignDashboardToPublicCustomer(dashboardId, getCurrentUser());
|
||||
}
|
||||
|
||||
@ApiOperation(value = "Unassign the Dashboard from Public Customer (unassignDashboardFromPublicCustomer)",
|
||||
@ -542,26 +337,9 @@ public class DashboardController extends BaseController {
|
||||
@ApiParam(value = DASHBOARD_ID_PARAM_DESCRIPTION)
|
||||
@PathVariable(DASHBOARD_ID) String strDashboardId) throws ThingsboardException {
|
||||
checkParameter(DASHBOARD_ID, strDashboardId);
|
||||
try {
|
||||
DashboardId dashboardId = new DashboardId(toUUID(strDashboardId));
|
||||
Dashboard dashboard = checkDashboardId(dashboardId, Operation.UNASSIGN_FROM_CUSTOMER);
|
||||
Customer publicCustomer = customerService.findOrCreatePublicCustomer(dashboard.getTenantId());
|
||||
|
||||
Dashboard savedDashboard = checkNotNull(dashboardService.unassignDashboardFromCustomer(getCurrentUser().getTenantId(), dashboardId, publicCustomer.getId()));
|
||||
|
||||
logEntityAction(dashboardId, dashboard,
|
||||
publicCustomer.getId(),
|
||||
ActionType.UNASSIGNED_FROM_CUSTOMER, null, strDashboardId, publicCustomer.getId().toString(), publicCustomer.getName());
|
||||
|
||||
return savedDashboard;
|
||||
} catch (Exception e) {
|
||||
|
||||
logEntityAction(emptyId(EntityType.DASHBOARD), null,
|
||||
null,
|
||||
ActionType.UNASSIGNED_FROM_CUSTOMER, e, strDashboardId);
|
||||
|
||||
throw handleException(e);
|
||||
}
|
||||
return tbDashboardService.unassignDashboardFromPublicCustomer(dashboard, getCurrentUser());
|
||||
}
|
||||
|
||||
@ApiOperation(value = "Get Tenant Dashboards by System Administrator (getTenantDashboards)",
|
||||
@ -775,6 +553,7 @@ public class DashboardController extends BaseController {
|
||||
public void setTenantHomeDashboardInfo(
|
||||
@ApiParam(value = "A JSON object that represents home dashboard id and other parameters", required = true)
|
||||
@RequestBody HomeDashboardInfo homeDashboardInfo) throws ThingsboardException {
|
||||
|
||||
try {
|
||||
if (homeDashboardInfo.getDashboardId() != null) {
|
||||
checkDashboardId(homeDashboardInfo.getDashboardId(), Operation.READ);
|
||||
@ -847,30 +626,13 @@ public class DashboardController extends BaseController {
|
||||
@PathVariable(DASHBOARD_ID) String strDashboardId) throws ThingsboardException {
|
||||
checkParameter("edgeId", strEdgeId);
|
||||
checkParameter(DASHBOARD_ID, strDashboardId);
|
||||
try {
|
||||
|
||||
EdgeId edgeId = new EdgeId(toUUID(strEdgeId));
|
||||
Edge edge = checkEdgeId(edgeId, Operation.READ);
|
||||
|
||||
DashboardId dashboardId = new DashboardId(toUUID(strDashboardId));
|
||||
checkDashboardId(dashboardId, Operation.READ);
|
||||
|
||||
Dashboard savedDashboard = checkNotNull(dashboardService.assignDashboardToEdge(getCurrentUser().getTenantId(), dashboardId, edgeId));
|
||||
|
||||
logEntityAction(dashboardId, savedDashboard,
|
||||
null,
|
||||
ActionType.ASSIGNED_TO_EDGE, null, strDashboardId, strEdgeId, edge.getName());
|
||||
|
||||
sendEntityAssignToEdgeNotificationMsg(getTenantId(), edgeId, savedDashboard.getId(), EdgeEventActionType.ASSIGNED_TO_EDGE);
|
||||
|
||||
return savedDashboard;
|
||||
} catch (Exception e) {
|
||||
|
||||
logEntityAction(emptyId(EntityType.DASHBOARD), null,
|
||||
null,
|
||||
ActionType.ASSIGNED_TO_EDGE, e, strDashboardId, strEdgeId);
|
||||
|
||||
throw handleException(e);
|
||||
}
|
||||
return tbDashboardService.asignDashboardToEdge(dashboardId, edge, getCurrentUser());
|
||||
}
|
||||
|
||||
@ApiOperation(value = "Unassign dashboard from edge (unassignDashboardFromEdge)",
|
||||
@ -886,31 +648,16 @@ public class DashboardController extends BaseController {
|
||||
@ResponseBody
|
||||
public Dashboard unassignDashboardFromEdge(@PathVariable("edgeId") String strEdgeId,
|
||||
@PathVariable(DASHBOARD_ID) String strDashboardId) throws ThingsboardException {
|
||||
checkParameter("edgeId", strEdgeId);
|
||||
checkParameter(EDGE_ID, strEdgeId);
|
||||
checkParameter(DASHBOARD_ID, strDashboardId);
|
||||
try {
|
||||
|
||||
EdgeId edgeId = new EdgeId(toUUID(strEdgeId));
|
||||
Edge edge = checkEdgeId(edgeId, Operation.READ);
|
||||
|
||||
DashboardId dashboardId = new DashboardId(toUUID(strDashboardId));
|
||||
Dashboard dashboard = checkDashboardId(dashboardId, Operation.READ);
|
||||
|
||||
Dashboard savedDashboard = checkNotNull(dashboardService.unassignDashboardFromEdge(getCurrentUser().getTenantId(), dashboardId, edgeId));
|
||||
|
||||
logEntityAction(dashboardId, dashboard,
|
||||
null,
|
||||
ActionType.UNASSIGNED_FROM_EDGE, null, strDashboardId, strEdgeId, edge.getName());
|
||||
|
||||
sendEntityAssignToEdgeNotificationMsg(getTenantId(), edgeId, savedDashboard.getId(), EdgeEventActionType.UNASSIGNED_FROM_EDGE);
|
||||
|
||||
return savedDashboard;
|
||||
} catch (Exception e) {
|
||||
|
||||
logEntityAction(emptyId(EntityType.DASHBOARD), null,
|
||||
null,
|
||||
ActionType.UNASSIGNED_FROM_EDGE, e, strDashboardId, strEdgeId);
|
||||
|
||||
throw handleException(e);
|
||||
}
|
||||
return tbDashboardService.unassignDashboardFromEdge(dashboard, edge, getCurrentUser());
|
||||
}
|
||||
|
||||
@ApiOperation(value = "Get Edge Dashboards (getEdgeDashboards)",
|
||||
@ -957,4 +704,17 @@ public class DashboardController extends BaseController {
|
||||
throw handleException(e);
|
||||
}
|
||||
}
|
||||
|
||||
private Set<CustomerId> customerIdFromStr(String [] strCustomerIds, Dashboard dashboard) {
|
||||
Set<CustomerId> customerIds = new HashSet<>();
|
||||
if (strCustomerIds != null) {
|
||||
for (String strCustomerId : strCustomerIds) {
|
||||
CustomerId customerId = new CustomerId(UUID.fromString(strCustomerId));
|
||||
if (dashboard.isAssignedToCustomer(customerId)) {
|
||||
customerIds.add(customerId);
|
||||
}
|
||||
}
|
||||
}
|
||||
return customerIds;
|
||||
}
|
||||
}
|
||||
|
||||
@ -206,7 +206,7 @@ public class DeviceController extends BaseController {
|
||||
DeviceId deviceId = new DeviceId(toUUID(strDeviceId));
|
||||
Device device = checkDeviceId(deviceId, Operation.DELETE);
|
||||
try {
|
||||
tbDeviceService.deleteDevice(device, getCurrentUser()).get();
|
||||
tbDeviceService.delete(device, getCurrentUser()).get();
|
||||
} catch (Exception e) {
|
||||
throw handleException(e);
|
||||
}
|
||||
|
||||
@ -164,7 +164,7 @@ public class EdgeController extends BaseController {
|
||||
|
||||
accessControlService.checkPermission(getCurrentUser(), Resource.EDGE, operation, edge.getId(), edge);
|
||||
|
||||
return tbEdgeService.saveEdge(edge, edgeTemplateRootRuleChain, getCurrentUser());
|
||||
return tbEdgeService.save(edge, edgeTemplateRootRuleChain, getCurrentUser());
|
||||
}
|
||||
|
||||
@ApiOperation(value = "Delete edge (deleteEdge)",
|
||||
@ -177,7 +177,7 @@ public class EdgeController extends BaseController {
|
||||
checkParameter(EDGE_ID, strEdgeId);
|
||||
EdgeId edgeId = new EdgeId(toUUID(strEdgeId));
|
||||
Edge edge = checkEdgeId(edgeId, Operation.DELETE);
|
||||
tbEdgeService.deleteEdge(edge, getCurrentUser());
|
||||
tbEdgeService.delete(edge, getCurrentUser());
|
||||
}
|
||||
|
||||
@ApiOperation(value = "Get Tenant Edges (getEdges)",
|
||||
|
||||
@ -76,7 +76,7 @@ public class EdgeBulkImportService extends AbstractBulkImportService<Edge> {
|
||||
@Override
|
||||
protected Edge saveEntity(SecurityUser user, Edge entity, Map<BulkImportColumnType, String> fields) {
|
||||
RuleChain edgeTemplateRootRuleChain = ruleChainService.getEdgeTemplateRootRuleChain(user.getTenantId());
|
||||
return tbEdgeService.saveEdge(entity, edgeTemplateRootRuleChain, user);
|
||||
return tbEdgeService.save(entity, edgeTemplateRootRuleChain, user);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -22,7 +22,6 @@ import lombok.Getter;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.thingsboard.server.cluster.TbClusterService;
|
||||
import org.thingsboard.server.common.data.EntityType;
|
||||
import org.thingsboard.server.common.data.HasName;
|
||||
import org.thingsboard.server.common.data.User;
|
||||
@ -43,6 +42,7 @@ import org.thingsboard.server.common.data.page.TimePageLink;
|
||||
import org.thingsboard.server.dao.alarm.AlarmService;
|
||||
import org.thingsboard.server.dao.asset.AssetService;
|
||||
import org.thingsboard.server.dao.customer.CustomerService;
|
||||
import org.thingsboard.server.dao.dashboard.DashboardService;
|
||||
import org.thingsboard.server.dao.device.ClaimDevicesService;
|
||||
import org.thingsboard.server.dao.device.DeviceCredentialsService;
|
||||
import org.thingsboard.server.dao.device.DeviceService;
|
||||
@ -106,6 +106,8 @@ public abstract class AbstractTbEntityService {
|
||||
protected RuleChainService ruleChainService;
|
||||
@Autowired
|
||||
protected EdgeNotificationService edgeNotificationService;
|
||||
@Autowired
|
||||
protected DashboardService dashboardService;
|
||||
|
||||
protected ListenableFuture<Void> removeAlarmsByEntityId(TenantId tenantId, EntityId entityId) {
|
||||
ListenableFuture<PageData<AlarmInfo>> alarmsFuture =
|
||||
|
||||
@ -22,7 +22,6 @@ import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.thingsboard.rule.engine.api.msg.DeviceCredentialsUpdateNotificationMsg;
|
||||
import org.thingsboard.server.cluster.TbClusterService;
|
||||
import org.thingsboard.server.common.data.Customer;
|
||||
import org.thingsboard.server.common.data.DataConstants;
|
||||
import org.thingsboard.server.common.data.Device;
|
||||
import org.thingsboard.server.common.data.HasName;
|
||||
@ -76,6 +75,15 @@ public class DefaultTbNotificationEntityService implements TbNotificationEntityS
|
||||
sendDeleteNotificationMsg(tenantId, entityId, entity, relatedEdgeIds);
|
||||
}
|
||||
|
||||
public void notifyDeleteAlarm(TenantId tenantId, Alarm alarm, EntityId originatorId,
|
||||
CustomerId customerId, ActionType actionType,
|
||||
List<EdgeId> relatedEdgeIds,
|
||||
SecurityUser user,
|
||||
String body, Object... additionalInfo) {
|
||||
logEntityAction(tenantId, originatorId, alarm, customerId, actionType, user, additionalInfo);
|
||||
sendAlarmDeleteNotificationMsg(tenantId, alarm, relatedEdgeIds, body);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <E extends HasName, I extends EntityId> void notifyAssignOrUnassignEntityToCustomer(TenantId tenantId, I entityId,
|
||||
CustomerId customerId, E entity,
|
||||
@ -126,7 +134,7 @@ public class DefaultTbNotificationEntityService implements TbNotificationEntityS
|
||||
gatewayNotificationsService.onDeviceDeleted(device);
|
||||
tbClusterService.onDeviceDeleted(device, null);
|
||||
|
||||
notifyDeleteEntity(tenantId, deviceId, device, customerId, ActionType.DELETED, relatedEdgeIds, user, false, additionalInfo);
|
||||
notifyDeleteEntity(tenantId, deviceId, device, customerId, ActionType.DELETED, relatedEdgeIds, user, additionalInfo);
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -191,20 +199,7 @@ public class DefaultTbNotificationEntityService implements TbNotificationEntityS
|
||||
@Override
|
||||
public void notifyCreateOrUpdateAlarm(Alarm alarm, ActionType actionType, SecurityUser user, Object... additionalInfo) {
|
||||
logEntityAction(alarm.getTenantId(), alarm.getOriginator(), alarm, alarm.getCustomerId(), actionType, user, additionalInfo);
|
||||
sendEntityNotificationMsg(alarm.getTenantId(), alarm.getId(), edgeTypeByActionType (actionType));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void notifyDeleteAlarm(Alarm alarm, SecurityUser user, List<EdgeId> relatedEdgeIds) {
|
||||
logEntityAction(alarm.getTenantId(), alarm.getOriginator(), alarm, alarm.getCustomerId(), ActionType.ALARM_DELETE, user, null);
|
||||
sendAlarmDeleteNotificationMsg(alarm, relatedEdgeIds);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void notifyDeleteCustomer(Customer customer, SecurityUser user, List<EdgeId> edgeIds) {
|
||||
logEntityAction(customer.getTenantId(), customer.getId(), customer, customer.getId(), ActionType.DELETED, user, null);
|
||||
sendDeleteNotificationMsg(customer.getTenantId(), customer.getId(), customer, edgeIds);
|
||||
tbClusterService.broadcastEntityStateChangeEvent(customer.getTenantId(), customer.getId(), ComponentLifecycleEvent.DELETED);
|
||||
sendEntityNotificationMsg(alarm.getTenantId(), alarm.getId(), edgeTypeByActionType(actionType));
|
||||
}
|
||||
|
||||
private <E extends HasName, I extends EntityId> void logEntityAction(TenantId tenantId, I entityId, E entity, CustomerId customerId,
|
||||
@ -233,19 +228,20 @@ public class DefaultTbNotificationEntityService implements TbNotificationEntityS
|
||||
}
|
||||
}
|
||||
|
||||
protected <E extends HasName, I extends EntityId> void sendDeleteNotificationMsg(TenantId tenantId, I entityId, E entity, List<EdgeId> edgeIds) {
|
||||
protected void sendAlarmDeleteNotificationMsg(TenantId tenantId, Alarm alarm, List<EdgeId> edgeIds, String body) {
|
||||
try {
|
||||
sendDeleteNotificationMsg(tenantId, entityId, edgeIds, null);
|
||||
sendDeleteNotificationMsg(tenantId, alarm.getId(), edgeIds, body);
|
||||
} catch (Exception e) {
|
||||
log.warn("Failed to push delete " + entity.getClass().getName() + " msg to core: {}", entity, e);
|
||||
log.warn("Failed to push delete msg to core: {}", alarm, e);
|
||||
}
|
||||
}
|
||||
|
||||
protected void sendAlarmDeleteNotificationMsg(Alarm alarm, List<EdgeId> relatedEdgeIds) {
|
||||
protected <E extends HasName, I extends EntityId> void sendDeleteNotificationMsg(TenantId tenantId, I entityId, E entity,
|
||||
List<EdgeId> edgeIds) {
|
||||
try {
|
||||
sendDeleteNotificationMsg(alarm.getTenantId(), alarm.getId(), relatedEdgeIds, json.writeValueAsString(alarm));
|
||||
sendDeleteNotificationMsg(tenantId, entityId, edgeIds, null);
|
||||
} catch (Exception e) {
|
||||
log.warn("Failed to push delete alarm msg to core: {}", alarm, e);
|
||||
log.warn("Failed to push delete msg to core: {}", entity, e);
|
||||
}
|
||||
}
|
||||
|
||||
@ -289,7 +285,7 @@ public class DefaultTbNotificationEntityService implements TbNotificationEntityS
|
||||
return null;
|
||||
}
|
||||
|
||||
private EdgeEventActionType edgeTypeByActionType (ActionType actionType) {
|
||||
private EdgeEventActionType edgeTypeByActionType(ActionType actionType) {
|
||||
switch (actionType) {
|
||||
case ADDED:
|
||||
return EdgeEventActionType.ADDED;
|
||||
|
||||
@ -22,4 +22,6 @@ public interface SimpleTbEntityService<T> {
|
||||
|
||||
T save(T entity, SecurityUser user) throws ThingsboardException;
|
||||
|
||||
void delete (T entity, SecurityUser user) throws ThingsboardException;
|
||||
|
||||
}
|
||||
|
||||
@ -15,7 +15,6 @@
|
||||
*/
|
||||
package org.thingsboard.server.service.entitiy;
|
||||
|
||||
import org.thingsboard.server.common.data.Customer;
|
||||
import org.thingsboard.server.common.data.Device;
|
||||
import org.thingsboard.server.common.data.HasName;
|
||||
import org.thingsboard.server.common.data.Tenant;
|
||||
@ -44,9 +43,15 @@ public interface TbNotificationEntityService {
|
||||
CustomerId customerId, ActionType actionType,
|
||||
SecurityUser user, Object... additionalInfo);
|
||||
|
||||
<E extends HasName, I extends EntityId> void notifyDeleteEntity(TenantId tenantId, I entityId, E entity, CustomerId customerId,
|
||||
ActionType actionType, List<EdgeId> relatedEdgeIds, SecurityUser user,
|
||||
Object... additionalInfo);
|
||||
<E extends HasName, I extends EntityId> void notifyDeleteEntity(TenantId tenantId, I entityId, E entity,
|
||||
CustomerId customerId, ActionType actionType,
|
||||
List<EdgeId> relatedEdgeIds,
|
||||
SecurityUser user, Object... additionalInfo);
|
||||
|
||||
void notifyDeleteAlarm(TenantId tenantId, Alarm alarm, EntityId originatorId,
|
||||
CustomerId customerId, ActionType actionType,
|
||||
List<EdgeId> relatedEdgeIds,
|
||||
SecurityUser user, String body, Object... additionalInfo);
|
||||
|
||||
<E extends HasName, I extends EntityId> void notifyAssignOrUnassignEntityToCustomer(TenantId tenantId, I entityId,
|
||||
CustomerId customerId, E entity,
|
||||
@ -80,8 +85,4 @@ public interface TbNotificationEntityService {
|
||||
void notifyEdge(TenantId tenantId, EdgeId edgeId, CustomerId customerId, Edge edge, ActionType actionType, SecurityUser user, Object... additionalInfo);
|
||||
|
||||
void notifyCreateOrUpdateAlarm(Alarm alarm, ActionType actionType, SecurityUser user, Object... additionalInfo);
|
||||
|
||||
void notifyDeleteAlarm(Alarm alarm, SecurityUser user, List<EdgeId> relatedEdgeIds);
|
||||
|
||||
void notifyDeleteCustomer(Customer customer, SecurityUser user, List<EdgeId> relatedEdgeIds);
|
||||
}
|
||||
|
||||
@ -17,6 +17,7 @@ package org.thingsboard.server.service.entitiy.alarm;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.thingsboard.common.util.JacksonUtil;
|
||||
import org.thingsboard.server.common.data.EntityType;
|
||||
import org.thingsboard.server.common.data.alarm.Alarm;
|
||||
import org.thingsboard.server.common.data.alarm.AlarmStatus;
|
||||
@ -77,8 +78,13 @@ public class DefaultTbAlarmService extends AbstractTbEntityService implements Tb
|
||||
|
||||
@Override
|
||||
public Boolean delete(Alarm alarm, SecurityUser user) throws ThingsboardException {
|
||||
List<EdgeId> relatedEdgeIds = findRelatedEdgeIds(alarm.getTenantId(), alarm.getOriginator());
|
||||
notificationEntityService.notifyDeleteAlarm(alarm, user, relatedEdgeIds);
|
||||
return alarmService.deleteAlarm(alarm.getTenantId(), alarm.getId()).isSuccessful();
|
||||
try {
|
||||
List<EdgeId> relatedEdgeIds = findRelatedEdgeIds(user.getTenantId(), alarm.getOriginator());
|
||||
notificationEntityService.notifyDeleteAlarm(user.getTenantId(), alarm, alarm.getOriginator(), user.getCustomerId(),
|
||||
ActionType.DELETED, relatedEdgeIds, user, JacksonUtil.OBJECT_MAPPER.writeValueAsString(alarm));
|
||||
return alarmService.deleteAlarm(user.getTenantId(), alarm.getId()).isSuccessful();
|
||||
} catch (Exception e) {
|
||||
throw handleException(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -16,12 +16,12 @@
|
||||
package org.thingsboard.server.service.entitiy.alarm;
|
||||
|
||||
import org.thingsboard.server.common.data.alarm.Alarm;
|
||||
import org.thingsboard.server.common.data.asset.Asset;
|
||||
import org.thingsboard.server.common.data.exception.ThingsboardException;
|
||||
import org.thingsboard.server.service.entitiy.SimpleTbEntityService;
|
||||
import org.thingsboard.server.service.security.model.SecurityUser;
|
||||
|
||||
public interface TbAlarmService extends SimpleTbEntityService<Alarm> {
|
||||
public interface TbAlarmService {
|
||||
|
||||
Alarm save(Alarm entity, SecurityUser user) throws ThingsboardException;
|
||||
|
||||
void ack(Alarm alarm, SecurityUser user) throws ThingsboardException;
|
||||
|
||||
|
||||
@ -39,6 +39,7 @@ import java.util.List;
|
||||
@TbCoreComponent
|
||||
@AllArgsConstructor
|
||||
public class DefaultTbAssetService extends AbstractTbEntityService implements TbAssetService {
|
||||
|
||||
@Override
|
||||
public Asset save(Asset asset, SecurityUser user) throws ThingsboardException {
|
||||
ActionType actionType = asset.getId() == null ? ActionType.ADDED : ActionType.UPDATED;
|
||||
@ -60,12 +61,13 @@ public class DefaultTbAssetService extends AbstractTbEntityService implements Tb
|
||||
try {
|
||||
List<EdgeId> relatedEdgeIds = findRelatedEdgeIds(tenantId, assetId);
|
||||
assetService.deleteAsset(tenantId, assetId);
|
||||
notificationEntityService.notifyDeleteEntity(tenantId, assetId, asset, asset.getCustomerId(), ActionType.DELETED, relatedEdgeIds, user, false, asset.toString());
|
||||
notificationEntityService.notifyDeleteEntity(tenantId, assetId, asset, asset.getCustomerId(), ActionType.DELETED,
|
||||
relatedEdgeIds, user, assetId.toString());
|
||||
|
||||
return removeAlarmsByEntityId(tenantId, assetId);
|
||||
} catch (Exception e) {
|
||||
notificationEntityService.notifyEntity(tenantId, emptyId(EntityType.ASSET), null, null,
|
||||
ActionType.DELETED, user, e, asset.toString());
|
||||
ActionType.DELETED, user, e, assetId.toString());
|
||||
throw handleException(e);
|
||||
}
|
||||
}
|
||||
|
||||
@ -22,10 +22,11 @@ import org.thingsboard.server.common.data.edge.Edge;
|
||||
import org.thingsboard.server.common.data.exception.ThingsboardException;
|
||||
import org.thingsboard.server.common.data.id.AssetId;
|
||||
import org.thingsboard.server.common.data.id.TenantId;
|
||||
import org.thingsboard.server.service.entitiy.SimpleTbEntityService;
|
||||
import org.thingsboard.server.service.security.model.SecurityUser;
|
||||
|
||||
public interface TbAssetService extends SimpleTbEntityService<Asset> {
|
||||
public interface TbAssetService {
|
||||
|
||||
Asset save(Asset asset, SecurityUser user) throws ThingsboardException;
|
||||
|
||||
ListenableFuture<Void> delete(Asset asset, SecurityUser user) throws ThingsboardException;
|
||||
|
||||
|
||||
@ -17,12 +17,15 @@ package org.thingsboard.server.service.entitiy.customer;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.thingsboard.server.cluster.TbClusterService;
|
||||
import org.thingsboard.server.common.data.Customer;
|
||||
import org.thingsboard.server.common.data.EntityType;
|
||||
import org.thingsboard.server.common.data.audit.ActionType;
|
||||
import org.thingsboard.server.common.data.exception.ThingsboardException;
|
||||
import org.thingsboard.server.common.data.id.CustomerId;
|
||||
import org.thingsboard.server.common.data.id.EdgeId;
|
||||
import org.thingsboard.server.common.data.id.TenantId;
|
||||
import org.thingsboard.server.common.data.plugin.ComponentLifecycleEvent;
|
||||
import org.thingsboard.server.queue.util.TbCoreComponent;
|
||||
import org.thingsboard.server.service.entitiy.AbstractTbEntityService;
|
||||
import org.thingsboard.server.service.security.model.SecurityUser;
|
||||
@ -34,6 +37,8 @@ import java.util.List;
|
||||
@AllArgsConstructor
|
||||
public class DefaultTbCustomerService extends AbstractTbEntityService implements TbCustomerService {
|
||||
|
||||
private final TbClusterService tbClusterService;
|
||||
|
||||
@Override
|
||||
public Customer save(Customer customer, SecurityUser user) throws ThingsboardException {
|
||||
ActionType actionType = customer.getId() == null ? ActionType.ADDED : ActionType.UPDATED;
|
||||
@ -48,15 +53,20 @@ public class DefaultTbCustomerService extends AbstractTbEntityService implements
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void delete(Customer customer, SecurityUser user) throws ThingsboardException {
|
||||
TenantId tenantId = customer.getTenantId();
|
||||
CustomerId customerId = customer.getId();
|
||||
try {
|
||||
List<EdgeId> relatedEdgeIds = findRelatedEdgeIds(tenantId, customer.getId());
|
||||
customerService.deleteCustomer(tenantId, customer.getId());
|
||||
notificationEntityService.notifyDeleteCustomer(customer, user, relatedEdgeIds);
|
||||
List<EdgeId> relatedEdgeIds = findRelatedEdgeIds(tenantId, customerId);
|
||||
customerService.deleteCustomer(tenantId, customerId);
|
||||
notificationEntityService.notifyDeleteEntity(tenantId, customerId, customer, customerId,
|
||||
ActionType.DELETED, relatedEdgeIds, user, customerId.toString());
|
||||
tbClusterService.broadcastEntityStateChangeEvent(tenantId, customerId, ComponentLifecycleEvent.DELETED);
|
||||
} catch (Exception e) {
|
||||
notificationEntityService.notifyEntity(tenantId, emptyId(EntityType.CUSTOMER), null, null, ActionType.DELETED, user, e);
|
||||
notificationEntityService.notifyEntity(tenantId, emptyId(EntityType.CUSTOMER), null, null,
|
||||
ActionType.DELETED, user, e, customerId.toString());
|
||||
throw handleException(e);
|
||||
}
|
||||
}
|
||||
|
||||
@ -16,12 +16,8 @@
|
||||
package org.thingsboard.server.service.entitiy.customer;
|
||||
|
||||
import org.thingsboard.server.common.data.Customer;
|
||||
import org.thingsboard.server.common.data.exception.ThingsboardException;
|
||||
import org.thingsboard.server.service.entitiy.SimpleTbEntityService;
|
||||
import org.thingsboard.server.service.security.model.SecurityUser;
|
||||
|
||||
public interface TbCustomerService extends SimpleTbEntityService<Customer> {
|
||||
|
||||
void delete(Customer customer, SecurityUser user) throws ThingsboardException;
|
||||
|
||||
}
|
||||
|
||||
@ -0,0 +1,275 @@
|
||||
/**
|
||||
* Copyright © 2016-2022 The Thingsboard Authors
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package org.thingsboard.server.service.entitiy.dashboard;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.thingsboard.server.common.data.Customer;
|
||||
import org.thingsboard.server.common.data.Dashboard;
|
||||
import org.thingsboard.server.common.data.EntityType;
|
||||
import org.thingsboard.server.common.data.ShortCustomerInfo;
|
||||
import org.thingsboard.server.common.data.audit.ActionType;
|
||||
import org.thingsboard.server.common.data.edge.Edge;
|
||||
import org.thingsboard.server.common.data.edge.EdgeEventActionType;
|
||||
import org.thingsboard.server.common.data.exception.ThingsboardException;
|
||||
import org.thingsboard.server.common.data.id.CustomerId;
|
||||
import org.thingsboard.server.common.data.id.DashboardId;
|
||||
import org.thingsboard.server.common.data.id.EdgeId;
|
||||
import org.thingsboard.server.common.data.id.TenantId;
|
||||
import org.thingsboard.server.queue.util.TbCoreComponent;
|
||||
import org.thingsboard.server.service.entitiy.AbstractTbEntityService;
|
||||
import org.thingsboard.server.service.security.model.SecurityUser;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
@Service
|
||||
@TbCoreComponent
|
||||
@AllArgsConstructor
|
||||
public class DefaultTbDashboardService extends AbstractTbEntityService implements TbDashboardService {
|
||||
|
||||
@Override
|
||||
public Dashboard save(Dashboard dashboard, SecurityUser user) throws ThingsboardException {
|
||||
ActionType actionType = dashboard.getId() == null ? ActionType.ADDED : ActionType.UPDATED;
|
||||
TenantId tenantId = dashboard.getTenantId();
|
||||
try {
|
||||
Dashboard savedDashboard = checkNotNull(dashboardService.saveDashboard(dashboard));
|
||||
notificationEntityService.notifyCreateOrUpdateEntity(tenantId, savedDashboard.getId(), savedDashboard,
|
||||
null, actionType, user);
|
||||
return savedDashboard;
|
||||
} catch (Exception e) {
|
||||
notificationEntityService.notifyEntity(tenantId, emptyId(EntityType.DASHBOARD), dashboard, null, actionType, user, e);
|
||||
throw handleException(e);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void delete(Dashboard dashboard, SecurityUser user) throws ThingsboardException {
|
||||
TenantId tenantId = dashboard.getTenantId();
|
||||
DashboardId dashboardId = dashboard.getId();
|
||||
try {
|
||||
List<EdgeId> relatedEdgeIds = findRelatedEdgeIds(tenantId, dashboardId);
|
||||
dashboardService.deleteDashboard(tenantId, dashboardId);
|
||||
notificationEntityService.notifyDeleteEntity(tenantId, dashboardId, dashboard, user.getCustomerId(),
|
||||
ActionType.DELETED, relatedEdgeIds, user, dashboardId.toString());
|
||||
} catch (Exception e) {
|
||||
notificationEntityService.notifyEntity(tenantId, emptyId(EntityType.DASHBOARD), null, null,
|
||||
ActionType.DELETED, user, e, dashboardId.toString());
|
||||
throw handleException(e);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Dashboard assignDashboardToCustomer(DashboardId dashboardId, Customer customer, SecurityUser user) throws ThingsboardException {
|
||||
ActionType actionType = ActionType.ASSIGNED_TO_CUSTOMER;
|
||||
CustomerId customerId = customer.getId();
|
||||
try {
|
||||
Dashboard savedDashboard = checkNotNull(dashboardService.assignDashboardToCustomer(user.getTenantId(), dashboardId, customerId));
|
||||
notificationEntityService.notifyAssignOrUnassignEntityToCustomer(user.getTenantId(), dashboardId, customerId, savedDashboard,
|
||||
actionType, EdgeEventActionType.ASSIGNED_TO_CUSTOMER, user, true, customerId.toString(), customer.getName());
|
||||
return savedDashboard;
|
||||
} catch (Exception e) {
|
||||
notificationEntityService.notifyEntity(user.getTenantId(), emptyId(EntityType.DASHBOARD), null, null,
|
||||
actionType, user, e, dashboardId.toString(), customerId.toString());
|
||||
throw handleException(e);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Dashboard assignDashboardToPublicCustomer(DashboardId dashboardId, SecurityUser user) throws ThingsboardException {
|
||||
ActionType actionType = ActionType.ASSIGNED_TO_CUSTOMER;
|
||||
try {
|
||||
Customer publicCustomer = customerService.findOrCreatePublicCustomer(user.getTenantId());
|
||||
Dashboard savedDashboard = checkNotNull(dashboardService.assignDashboardToCustomer(user.getTenantId(), dashboardId, publicCustomer.getId()));
|
||||
notificationEntityService.notifyAssignOrUnassignEntityToCustomer(user.getTenantId(), dashboardId, user.getCustomerId(), savedDashboard,
|
||||
actionType, null, user, false, dashboardId.toString(),
|
||||
publicCustomer.getId().toString(), publicCustomer.getName());
|
||||
return savedDashboard;
|
||||
} catch (Exception e) {
|
||||
notificationEntityService.notifyEntity(user.getTenantId(), emptyId(EntityType.DASHBOARD), null, null,
|
||||
actionType, user, e, dashboardId.toString());
|
||||
throw handleException(e);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Dashboard unassignDashboardFromPublicCustomer(Dashboard dashboard, SecurityUser user) throws ThingsboardException {
|
||||
ActionType actionType = ActionType.UNASSIGNED_FROM_CUSTOMER;
|
||||
try {
|
||||
Customer publicCustomer = customerService.findOrCreatePublicCustomer(dashboard.getTenantId());
|
||||
Dashboard savedDashboard = checkNotNull(dashboardService.unassignDashboardFromCustomer(user.getTenantId(), dashboard.getId(), publicCustomer.getId()));
|
||||
notificationEntityService.notifyAssignOrUnassignEntityToCustomer(user.getTenantId(), dashboard.getId(), user.getCustomerId(), dashboard,
|
||||
actionType, null, user, false, dashboard.getId().toString(),
|
||||
publicCustomer.getId().toString(), publicCustomer.getName());
|
||||
return savedDashboard;
|
||||
} catch (Exception e) {
|
||||
notificationEntityService.notifyEntity(user.getTenantId(), emptyId(EntityType.DASHBOARD), null, null,
|
||||
actionType, user, e, dashboard.getId().toString());
|
||||
throw handleException(e);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Dashboard updateDashboardCustomers(Dashboard dashboard, Set<CustomerId> customerIds, SecurityUser user) throws ThingsboardException {
|
||||
ActionType actionType = ActionType.ASSIGNED_TO_CUSTOMER;
|
||||
TenantId tenantId = user.getTenantId();
|
||||
try {
|
||||
Set<CustomerId> addedCustomerIds = new HashSet<>();
|
||||
Set<CustomerId> removedCustomerIds = new HashSet<>();
|
||||
for (CustomerId customerId : customerIds) {
|
||||
if (!dashboard.isAssignedToCustomer(customerId)) {
|
||||
addedCustomerIds.add(customerId);
|
||||
}
|
||||
}
|
||||
|
||||
Set<ShortCustomerInfo> assignedCustomers = dashboard.getAssignedCustomers();
|
||||
if (assignedCustomers != null) {
|
||||
for (ShortCustomerInfo customerInfo : assignedCustomers) {
|
||||
if (!customerIds.contains(customerInfo.getCustomerId())) {
|
||||
removedCustomerIds.add(customerInfo.getCustomerId());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (addedCustomerIds.isEmpty() && removedCustomerIds.isEmpty()) {
|
||||
return dashboard;
|
||||
} else {
|
||||
Dashboard savedDashboard = null;
|
||||
for (CustomerId customerId : addedCustomerIds) {
|
||||
savedDashboard = checkNotNull(dashboardService.assignDashboardToCustomer(tenantId, dashboard.getId(), customerId));
|
||||
ShortCustomerInfo customerInfo = savedDashboard.getAssignedCustomerInfo(customerId);
|
||||
notificationEntityService.notifyAssignOrUnassignEntityToCustomer(tenantId, savedDashboard.getId(), customerId, savedDashboard,
|
||||
actionType, EdgeEventActionType.ASSIGNED_TO_CUSTOMER, user, true, customerInfo.getTitle());
|
||||
}
|
||||
for (CustomerId customerId : removedCustomerIds) {
|
||||
ShortCustomerInfo customerInfo = dashboard.getAssignedCustomerInfo(customerId);
|
||||
savedDashboard = checkNotNull(dashboardService.unassignDashboardFromCustomer(tenantId, dashboard.getId(), customerId));
|
||||
notificationEntityService.notifyAssignOrUnassignEntityToCustomer(tenantId, savedDashboard.getId(), customerId, savedDashboard,
|
||||
ActionType.UNASSIGNED_FROM_CUSTOMER, EdgeEventActionType.UNASSIGNED_FROM_CUSTOMER, user, true, customerInfo.getTitle());
|
||||
}
|
||||
return savedDashboard;
|
||||
}
|
||||
} catch (Exception e) {
|
||||
notificationEntityService.notifyEntity(tenantId, emptyId(EntityType.DASHBOARD), null, null,
|
||||
actionType, user, e, dashboard.getId().toString());
|
||||
throw handleException(e);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Dashboard addDashboardCustomers(Dashboard dashboard, Set<CustomerId> customerIds, SecurityUser user) throws ThingsboardException {
|
||||
ActionType actionType = ActionType.ASSIGNED_TO_CUSTOMER;
|
||||
TenantId tenantId = user.getTenantId();
|
||||
try {
|
||||
if (customerIds.isEmpty()) {
|
||||
return dashboard;
|
||||
} else {
|
||||
Dashboard savedDashboard = null;
|
||||
for (CustomerId customerId : customerIds) {
|
||||
savedDashboard = checkNotNull(dashboardService.assignDashboardToCustomer(tenantId, dashboard.getId(), customerId));
|
||||
ShortCustomerInfo customerInfo = savedDashboard.getAssignedCustomerInfo(customerId);
|
||||
notificationEntityService.notifyAssignOrUnassignEntityToCustomer(tenantId, savedDashboard.getId(), customerId, savedDashboard,
|
||||
actionType, EdgeEventActionType.ASSIGNED_TO_CUSTOMER, user, true, customerInfo.getTitle());
|
||||
}
|
||||
return savedDashboard;
|
||||
}
|
||||
} catch (Exception e) {
|
||||
notificationEntityService.notifyEntity(tenantId, emptyId(EntityType.DASHBOARD), null, null,
|
||||
actionType, user, e, dashboard.getId().toString());
|
||||
throw handleException(e);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Dashboard removeDashboardCustomers(Dashboard dashboard, Set<CustomerId> customerIds, SecurityUser user) throws ThingsboardException {
|
||||
ActionType actionType = ActionType.UNASSIGNED_FROM_CUSTOMER;
|
||||
TenantId tenantId = user.getTenantId();
|
||||
try {
|
||||
if (customerIds.isEmpty()) {
|
||||
return dashboard;
|
||||
} else {
|
||||
Dashboard savedDashboard = null;
|
||||
for (CustomerId customerId : customerIds) {
|
||||
ShortCustomerInfo customerInfo = dashboard.getAssignedCustomerInfo(customerId);
|
||||
savedDashboard = checkNotNull(dashboardService.unassignDashboardFromCustomer(tenantId, dashboard.getId(), customerId));
|
||||
notificationEntityService.notifyAssignOrUnassignEntityToCustomer(tenantId, savedDashboard.getId(), customerId, savedDashboard,
|
||||
actionType, EdgeEventActionType.UNASSIGNED_FROM_CUSTOMER, user, true, customerInfo.getTitle());
|
||||
}
|
||||
return savedDashboard;
|
||||
}
|
||||
} catch (Exception e) {
|
||||
notificationEntityService.notifyEntity(tenantId, emptyId(EntityType.DASHBOARD), null, null,
|
||||
actionType, user, e, dashboard.getId().toString());
|
||||
throw handleException(e);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Dashboard asignDashboardToEdge(DashboardId dashboardId, Edge edge, SecurityUser user) throws ThingsboardException {
|
||||
ActionType actionType = ActionType.ASSIGNED_TO_EDGE;
|
||||
TenantId tenantId = user.getTenantId();
|
||||
EdgeId edgeId = edge.getId();
|
||||
try {
|
||||
Dashboard savedDashboard = checkNotNull(dashboardService.assignDashboardToEdge(tenantId, dashboardId, edgeId));
|
||||
notificationEntityService.notifyAssignOrUnassignEntityToEdge(tenantId, dashboardId, user.getCustomerId(),
|
||||
edgeId, savedDashboard, actionType, EdgeEventActionType.ASSIGNED_TO_EDGE, user, dashboardId.toString(),
|
||||
edgeId.toString(), edge.getName());
|
||||
return savedDashboard;
|
||||
} catch (Exception e) {
|
||||
notificationEntityService.notifyEntity(tenantId, emptyId(EntityType.DEVICE), null, null,
|
||||
actionType, user, e, dashboardId.toString(), edgeId.toString());
|
||||
throw handleException(e);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Dashboard unassignDashboardFromEdge(Dashboard dashboard, Edge edge, SecurityUser user) throws ThingsboardException {
|
||||
ActionType actionType = ActionType.UNASSIGNED_FROM_EDGE;
|
||||
TenantId tenantId = dashboard.getTenantId();
|
||||
DashboardId dashboardId = dashboard.getId();
|
||||
EdgeId edgeId = edge.getId();
|
||||
try {
|
||||
Dashboard savedDevice = checkNotNull(dashboardService.unassignDashboardFromEdge(tenantId, dashboardId, edgeId));
|
||||
|
||||
notificationEntityService.notifyAssignOrUnassignEntityToEdge(tenantId, dashboardId, user.getCustomerId(),
|
||||
edgeId, dashboard, actionType, EdgeEventActionType.UNASSIGNED_FROM_EDGE, user, dashboardId.toString(),
|
||||
edgeId.toString(), edge.getName());
|
||||
return savedDevice;
|
||||
} catch (Exception e) {
|
||||
notificationEntityService.notifyEntity(tenantId, emptyId(EntityType.DASHBOARD), null, null,
|
||||
actionType, user, e, dashboardId.toString(), edgeId.toString());
|
||||
throw handleException(e);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Dashboard unassignDashboardFromCustomer(Dashboard dashboard, Customer customer, SecurityUser user) throws ThingsboardException {
|
||||
ActionType actionType = ActionType.UNASSIGNED_FROM_CUSTOMER;
|
||||
TenantId tenantId = dashboard.getTenantId();
|
||||
try {
|
||||
Dashboard savedDashboard = checkNotNull(dashboardService.unassignDashboardFromCustomer(tenantId, dashboard.getId(), customer.getId()));
|
||||
notificationEntityService.notifyAssignOrUnassignEntityToCustomer(tenantId, dashboard.getId(), customer.getId(), savedDashboard,
|
||||
actionType, EdgeEventActionType.UNASSIGNED_FROM_CUSTOMER, user, true, customer.getId().toString(), customer.getName());
|
||||
return savedDashboard;
|
||||
} catch (Exception e) {
|
||||
notificationEntityService.notifyEntity(tenantId, emptyId(EntityType.DASHBOARD), null, null,
|
||||
actionType, user, e, dashboard.getId().toString());
|
||||
throw handleException(e);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,49 @@
|
||||
/**
|
||||
* Copyright © 2016-2022 The Thingsboard Authors
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package org.thingsboard.server.service.entitiy.dashboard;
|
||||
|
||||
import org.thingsboard.server.common.data.Customer;
|
||||
import org.thingsboard.server.common.data.Dashboard;
|
||||
import org.thingsboard.server.common.data.edge.Edge;
|
||||
import org.thingsboard.server.common.data.exception.ThingsboardException;
|
||||
import org.thingsboard.server.common.data.id.CustomerId;
|
||||
import org.thingsboard.server.common.data.id.DashboardId;
|
||||
import org.thingsboard.server.service.entitiy.SimpleTbEntityService;
|
||||
import org.thingsboard.server.service.security.model.SecurityUser;
|
||||
|
||||
import java.util.Set;
|
||||
|
||||
public interface TbDashboardService extends SimpleTbEntityService<Dashboard> {
|
||||
|
||||
Dashboard assignDashboardToCustomer(DashboardId dashboardId, Customer customer, SecurityUser user) throws ThingsboardException;
|
||||
|
||||
Dashboard assignDashboardToPublicCustomer(DashboardId dashboardId, SecurityUser user) throws ThingsboardException;
|
||||
|
||||
Dashboard unassignDashboardFromPublicCustomer(Dashboard dashboard, SecurityUser user) throws ThingsboardException;
|
||||
|
||||
Dashboard updateDashboardCustomers(Dashboard dashboard, Set<CustomerId> customerIds, SecurityUser user) throws ThingsboardException;
|
||||
|
||||
Dashboard addDashboardCustomers(Dashboard dashboard, Set<CustomerId> customerIds, SecurityUser user) throws ThingsboardException;
|
||||
|
||||
Dashboard removeDashboardCustomers(Dashboard dashboard, Set<CustomerId> customerIds, SecurityUser user) throws ThingsboardException;
|
||||
|
||||
Dashboard asignDashboardToEdge(DashboardId dashboardId, Edge edge, SecurityUser user) throws ThingsboardException;
|
||||
|
||||
Dashboard unassignDashboardFromEdge(Dashboard dashboard, Edge edge, SecurityUser user) throws ThingsboardException;
|
||||
|
||||
Dashboard unassignDashboardFromCustomer(Dashboard dashboard, Customer customer, SecurityUser user) throws ThingsboardException;
|
||||
|
||||
}
|
||||
@ -80,7 +80,7 @@ public class DefaultTbDeviceService extends AbstractTbEntityService implements T
|
||||
}
|
||||
|
||||
@Override
|
||||
public ListenableFuture<Void> deleteDevice(Device device, SecurityUser user) throws ThingsboardException {
|
||||
public ListenableFuture<Void> delete(Device device, SecurityUser user) throws ThingsboardException {
|
||||
TenantId tenantId = device.getTenantId();
|
||||
DeviceId deviceId = device.getId();
|
||||
try {
|
||||
|
||||
@ -35,7 +35,7 @@ public interface TbDeviceService {
|
||||
|
||||
Device saveDeviceWithCredentials(TenantId tenantId, Device device, DeviceCredentials deviceCredentials, SecurityUser user) throws ThingsboardException;
|
||||
|
||||
ListenableFuture<Void> deleteDevice(Device device, SecurityUser user) throws ThingsboardException;
|
||||
ListenableFuture<Void> delete(Device device, SecurityUser user) throws ThingsboardException;
|
||||
|
||||
Device assignDeviceToCustomer(TenantId tenantId, DeviceId deviceId, Customer customer, SecurityUser user) throws ThingsboardException;
|
||||
|
||||
|
||||
@ -39,7 +39,7 @@ import org.thingsboard.server.service.security.model.SecurityUser;
|
||||
public class DefaultTbEdgeService extends AbstractTbEntityService implements TbEdgeService {
|
||||
|
||||
@Override
|
||||
public Edge saveEdge(Edge edge, RuleChain edgeTemplateRootRuleChain, SecurityUser user) throws ThingsboardException {
|
||||
public Edge save(Edge edge, RuleChain edgeTemplateRootRuleChain, SecurityUser user) throws ThingsboardException {
|
||||
ActionType actionType = edge.getId() == null ? ActionType.ADDED : ActionType.UPDATED;
|
||||
TenantId tenantId = edge.getTenantId();
|
||||
try {
|
||||
@ -62,16 +62,16 @@ public class DefaultTbEdgeService extends AbstractTbEntityService implements TbE
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deleteEdge(Edge edge, SecurityUser user) throws ThingsboardException {
|
||||
public void delete(Edge edge, SecurityUser user) throws ThingsboardException {
|
||||
ActionType actionType = ActionType.DELETED;
|
||||
EdgeId edgeId = edge.getId();
|
||||
TenantId tenantId = edge.getTenantId();
|
||||
try {
|
||||
edgeService.deleteEdge(tenantId, edgeId);
|
||||
notificationEntityService.notifyEdge(tenantId, edgeId, edge.getCustomerId(), edge, actionType, user, edgeId.toString());
|
||||
|
||||
} catch (Exception e) {
|
||||
notificationEntityService.notifyEntity(tenantId, emptyId(EntityType.EDGE), edge, null, actionType, user, e);
|
||||
notificationEntityService.notifyEntity(tenantId, emptyId(EntityType.EDGE), edge, null, actionType,
|
||||
user, e, edgeId.toString());
|
||||
throw handleException(e);
|
||||
}
|
||||
}
|
||||
|
||||
@ -25,9 +25,9 @@ import org.thingsboard.server.common.data.rule.RuleChain;
|
||||
import org.thingsboard.server.service.security.model.SecurityUser;
|
||||
|
||||
public interface TbEdgeService {
|
||||
Edge saveEdge(Edge edge, RuleChain edgeTemplateRootRuleChain, SecurityUser user) throws ThingsboardException;
|
||||
Edge save(Edge edge, RuleChain edgeTemplateRootRuleChain, SecurityUser user) throws ThingsboardException;
|
||||
|
||||
void deleteEdge(Edge edge, SecurityUser user) throws ThingsboardException;
|
||||
void delete(Edge edge, SecurityUser user) throws ThingsboardException;
|
||||
|
||||
Edge assignEdgeToCustomer(TenantId tenantId, EdgeId edgeId, Customer customer, SecurityUser user) throws ThingsboardException;
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user