refactoring
This commit is contained in:
parent
2d4b8a85f9
commit
cda9cc4782
@ -78,6 +78,8 @@ import static org.thingsboard.server.controller.ControllerConstants.EDGE_ASSIGN_
|
||||
import static org.thingsboard.server.controller.ControllerConstants.EDGE_ID_PARAM_DESCRIPTION;
|
||||
import static org.thingsboard.server.controller.ControllerConstants.EDGE_UNASSIGN_ASYNC_FIRST_STEP_DESCRIPTION;
|
||||
import static org.thingsboard.server.controller.ControllerConstants.EDGE_UNASSIGN_RECEIVE_STEP_DESCRIPTION;
|
||||
import static org.thingsboard.server.controller.ControllerConstants.NAME_CONFLICT_POLICY_DESC;
|
||||
import static org.thingsboard.server.controller.ControllerConstants.NAME_CONFLICT_SEPARATOR_DESC;
|
||||
import static org.thingsboard.server.controller.ControllerConstants.PAGE_DATA_PARAMETERS;
|
||||
import static org.thingsboard.server.controller.ControllerConstants.PAGE_NUMBER_DESCRIPTION;
|
||||
import static org.thingsboard.server.controller.ControllerConstants.PAGE_SIZE_DESCRIPTION;
|
||||
@ -140,13 +142,9 @@ public class AssetController extends BaseController {
|
||||
@RequestMapping(value = "/asset", method = RequestMethod.POST)
|
||||
@ResponseBody
|
||||
public Asset saveAsset(@io.swagger.v3.oas.annotations.parameters.RequestBody(description = "A JSON value representing the asset.") @RequestBody Asset asset,
|
||||
@Parameter(description = "Optional value of name conflict policy. Possible values: FAIL or UNIQUIFY. " +
|
||||
"If omitted, FAIL policy is applied. FAIL policy implies exception will be thrown if an entity with the same name already exists. " +
|
||||
"UNIQUIFY policy appends a suffix to the entity name, if a name conflict occurs.")
|
||||
@Parameter(description = NAME_CONFLICT_POLICY_DESC)
|
||||
@RequestParam(name = "policy", defaultValue = "FAIL") NameConflictPolicy policy,
|
||||
@Parameter(description = "Optional value of name suffix separator used by UNIQUIFY policy. By default, underscore separator is used. " +
|
||||
"For example, strategy is UNIQUIFY, separator is '-'; if a name conflict occurs for asset 'Office A', " +
|
||||
"created asset will have name like 'Office A-7fsh4f'.")
|
||||
@Parameter(description = NAME_CONFLICT_SEPARATOR_DESC)
|
||||
@RequestParam(name = "separator", defaultValue = "_") String separator) throws Exception {
|
||||
asset.setTenantId(getTenantId());
|
||||
checkEntity(asset.getId(), asset, Resource.ASSET);
|
||||
|
||||
@ -1744,4 +1744,12 @@ public class ControllerConstants {
|
||||
MARKDOWN_CODE_BLOCK_END ;
|
||||
|
||||
protected static final String SECURITY_WRITE_CHECK = " Security check is performed to verify that the user has 'WRITE' permission for the entity (entities).";
|
||||
|
||||
public static final String NAME_CONFLICT_POLICY_DESC = "Optional value of name conflict policy. Possible values: FAIL or UNIQUIFY. " +
|
||||
" If omitted, FAIL policy is applied. FAIL policy implies exception will be thrown if an entity with the same name already exists. " +
|
||||
" UNIQUIFY policy appends a suffix to the entity name, if a name conflict occurs.";
|
||||
|
||||
public static final String NAME_CONFLICT_SEPARATOR_DESC = "Optional value of name suffix separator used by UNIQUIFY policy. By default, underscore separator is used. " +
|
||||
"For example, strategy is UNIQUIFY, separator is '-'; if a name conflict occurs for entity name 'test-name', " +
|
||||
"created entity will have name like 'test-name-7fsh4f'.";
|
||||
}
|
||||
|
||||
@ -49,6 +49,8 @@ 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_TEXT_SEARCH_DESCRIPTION;
|
||||
import static org.thingsboard.server.controller.ControllerConstants.HOME_DASHBOARD;
|
||||
import static org.thingsboard.server.controller.ControllerConstants.NAME_CONFLICT_POLICY_DESC;
|
||||
import static org.thingsboard.server.controller.ControllerConstants.NAME_CONFLICT_SEPARATOR_DESC;
|
||||
import static org.thingsboard.server.controller.ControllerConstants.PAGE_DATA_PARAMETERS;
|
||||
import static org.thingsboard.server.controller.ControllerConstants.PAGE_NUMBER_DESCRIPTION;
|
||||
import static org.thingsboard.server.controller.ControllerConstants.PAGE_SIZE_DESCRIPTION;
|
||||
@ -131,13 +133,9 @@ public class CustomerController extends BaseController {
|
||||
@RequestMapping(value = "/customer", method = RequestMethod.POST)
|
||||
@ResponseBody
|
||||
public Customer saveCustomer(@io.swagger.v3.oas.annotations.parameters.RequestBody(description = "A JSON value representing the customer.") @RequestBody Customer customer,
|
||||
@Parameter(description = "Optional value of name conflict policy. Possible values: FAIL or UNIQUIFY. " +
|
||||
"If omitted, FAIL policy is applied. FAIL policy implies exception will be thrown if an entity with the same name already exists. " +
|
||||
"UNIQUIFY policy appends a suffix to the entity name, if a name conflict occurs.")
|
||||
@Parameter(description = NAME_CONFLICT_POLICY_DESC)
|
||||
@RequestParam(name = "policy", defaultValue = "FAIL") NameConflictPolicy policy,
|
||||
@Parameter(description = "Optional value of name suffix separator used by UNIQUIFY policy. By default, underscore separator is used. " +
|
||||
"For example, strategy is UNIQUIFY, separator is '-'; if a name conflict occurs for customer name 'Customer A', " +
|
||||
"created customer will have name like 'Customer A-7fsh4f'.")
|
||||
@Parameter(description = NAME_CONFLICT_SEPARATOR_DESC)
|
||||
@RequestParam(name = "separator", defaultValue = "_") String separator) throws Exception {
|
||||
customer.setTenantId(getTenantId());
|
||||
checkEntity(customer.getId(), customer, Resource.CUSTOMER);
|
||||
|
||||
@ -110,6 +110,8 @@ import static org.thingsboard.server.controller.ControllerConstants.EDGE_ASSIGN_
|
||||
import static org.thingsboard.server.controller.ControllerConstants.EDGE_ID_PARAM_DESCRIPTION;
|
||||
import static org.thingsboard.server.controller.ControllerConstants.EDGE_UNASSIGN_ASYNC_FIRST_STEP_DESCRIPTION;
|
||||
import static org.thingsboard.server.controller.ControllerConstants.EDGE_UNASSIGN_RECEIVE_STEP_DESCRIPTION;
|
||||
import static org.thingsboard.server.controller.ControllerConstants.NAME_CONFLICT_POLICY_DESC;
|
||||
import static org.thingsboard.server.controller.ControllerConstants.NAME_CONFLICT_SEPARATOR_DESC;
|
||||
import static org.thingsboard.server.controller.ControllerConstants.PAGE_DATA_PARAMETERS;
|
||||
import static org.thingsboard.server.controller.ControllerConstants.PAGE_NUMBER_DESCRIPTION;
|
||||
import static org.thingsboard.server.controller.ControllerConstants.PAGE_SIZE_DESCRIPTION;
|
||||
@ -181,13 +183,9 @@ public class DeviceController extends BaseController {
|
||||
@Parameter(description = "Optional value of the device credentials to be used during device creation. " +
|
||||
"If omitted, access token will be auto-generated.")
|
||||
@RequestParam(name = "accessToken", required = false) String accessToken,
|
||||
@Parameter(description = "Optional value of name conflict policy. Possible values: FAIL or UNIQUIFY. " +
|
||||
"If omitted, FAIL policy is applied. FAIL policy implies exception will be thrown if an entity with the same name already exists. " +
|
||||
"UNIQUIFY policy appends a suffix to the entity name, if a name conflict occurs.")
|
||||
@Parameter(description = NAME_CONFLICT_POLICY_DESC)
|
||||
@RequestParam(name = "policy", defaultValue = "FAIL") NameConflictPolicy policy,
|
||||
@Parameter(description = "Optional value of name suffix separator used by UNIQUIFY policy. By default, underscore separator is used. " +
|
||||
"For example, strategy is UNIQUIFY, separator is '-'; if a name conflict occurs for device name 'thermostat', " +
|
||||
"created device will have name like 'thermostat-7fsh4f'.")
|
||||
@Parameter(description = NAME_CONFLICT_SEPARATOR_DESC)
|
||||
@RequestParam(name = "separator", defaultValue = "_") String separator) throws Exception {
|
||||
device.setTenantId(getCurrentUser().getTenantId());
|
||||
if (device.getId() != null) {
|
||||
|
||||
@ -71,6 +71,8 @@ import static org.thingsboard.server.controller.ControllerConstants.ENTITY_VIEW_
|
||||
import static org.thingsboard.server.controller.ControllerConstants.ENTITY_VIEW_TEXT_SEARCH_DESCRIPTION;
|
||||
import static org.thingsboard.server.controller.ControllerConstants.ENTITY_VIEW_TYPE;
|
||||
import static org.thingsboard.server.controller.ControllerConstants.MODEL_DESCRIPTION;
|
||||
import static org.thingsboard.server.controller.ControllerConstants.NAME_CONFLICT_POLICY_DESC;
|
||||
import static org.thingsboard.server.controller.ControllerConstants.NAME_CONFLICT_SEPARATOR_DESC;
|
||||
import static org.thingsboard.server.controller.ControllerConstants.PAGE_DATA_PARAMETERS;
|
||||
import static org.thingsboard.server.controller.ControllerConstants.PAGE_NUMBER_DESCRIPTION;
|
||||
import static org.thingsboard.server.controller.ControllerConstants.PAGE_SIZE_DESCRIPTION;
|
||||
@ -131,13 +133,9 @@ public class EntityViewController extends BaseController {
|
||||
public EntityView saveEntityView(
|
||||
@Parameter(description = "A JSON object representing the entity view.")
|
||||
@RequestBody EntityView entityView,
|
||||
@Parameter(description = "Optional value of name conflict policy. Possible values: FAIL or UNIQUIFY. " +
|
||||
"If omitted, FAIL policy is applied. FAIL policy implies exception will be thrown if an entity with the same name already exists. " +
|
||||
"UNIQUIFY policy appends a suffix to the entity name, if a name conflict occurs.")
|
||||
@Parameter(description = NAME_CONFLICT_POLICY_DESC)
|
||||
@RequestParam(name = "policy", defaultValue = "FAIL") NameConflictPolicy policy,
|
||||
@Parameter(description = "Optional value of name suffix separator used by UNIQUIFY policy. By default, underscore separator is used. " +
|
||||
"For example, strategy is UNIQUIFY, separator is '-'; if a name conflict occurs for entity view name 'Device A', " +
|
||||
"created customer will have name like 'Device A-7fsh4f'.")
|
||||
@Parameter(description = NAME_CONFLICT_SEPARATOR_DESC)
|
||||
@RequestParam(name = "separator", defaultValue = "_") String separator) throws Exception {
|
||||
entityView.setTenantId(getCurrentUser().getTenantId());
|
||||
EntityView existingEntityView = null;
|
||||
|
||||
@ -166,9 +166,6 @@ public class BaseAssetService extends AbstractCachedEntityService<AssetCacheKey,
|
||||
} else if (asset.getId() != null) {
|
||||
oldAsset = findAssetById(asset.getTenantId(), asset.getId());
|
||||
}
|
||||
if (nameConflictStrategy.policy() == NameConflictPolicy.UNIQUIFY) {
|
||||
uniquifyEntityName(asset, oldAsset, asset::setName, EntityType.ASSET, nameConflictStrategy);
|
||||
}
|
||||
AssetCacheEvictEvent evictEvent = new AssetCacheEvictEvent(asset.getTenantId(), asset.getName(), oldAsset != null ? oldAsset.getName() : null);
|
||||
Asset savedAsset;
|
||||
try {
|
||||
@ -190,6 +187,9 @@ public class BaseAssetService extends AbstractCachedEntityService<AssetCacheKey,
|
||||
}
|
||||
}
|
||||
asset.setType(assetProfile.getName());
|
||||
if (nameConflictStrategy.policy() == NameConflictPolicy.UNIQUIFY) {
|
||||
uniquifyEntityName(asset, oldAsset, asset::setName, EntityType.ASSET, nameConflictStrategy);
|
||||
}
|
||||
savedAsset = assetDao.saveAndFlush(asset.getTenantId(), asset);
|
||||
publishEvictEvent(evictEvent);
|
||||
eventPublisher.publishEvent(SaveEntityEvent.builder().tenantId(savedAsset.getTenantId()).entityId(savedAsset.getId())
|
||||
|
||||
@ -160,11 +160,11 @@ public class CustomerServiceImpl extends AbstractCachedEntityService<CustomerCac
|
||||
if (doValidate) {
|
||||
oldCustomer = customerValidator.validate(customer, Customer::getTenantId);
|
||||
}
|
||||
var evictEvent = new CustomerCacheEvictEvent(customer.getTenantId(), customer.getTitle(), oldCustomer != null ? oldCustomer.getTitle() : null);
|
||||
try {
|
||||
if (nameConflictStrategy.policy() == NameConflictPolicy.UNIQUIFY) {
|
||||
uniquifyEntityName(customer, oldCustomer, customer::setTitle, EntityType.CUSTOMER, nameConflictStrategy);
|
||||
}
|
||||
var evictEvent = new CustomerCacheEvictEvent(customer.getTenantId(), customer.getTitle(), oldCustomer != null ? oldCustomer.getTitle() : null);
|
||||
try {
|
||||
Customer savedCustomer = customerDao.saveAndFlush(customer.getTenantId(), customer);
|
||||
if (!savedCustomer.isPublic()) {
|
||||
dashboardService.updateCustomerDashboards(savedCustomer.getTenantId(), savedCustomer.getId());
|
||||
|
||||
@ -235,9 +235,6 @@ public class DeviceServiceImpl extends CachedVersionedEntityService<DeviceCacheK
|
||||
} else if (device.getId() != null) {
|
||||
oldDevice = findDeviceById(device.getTenantId(), device.getId());
|
||||
}
|
||||
if (nameConflictStrategy.policy() == NameConflictPolicy.UNIQUIFY) {
|
||||
uniquifyEntityName(device, oldDevice, device::setName, EntityType.DEVICE, nameConflictStrategy);
|
||||
}
|
||||
DeviceCacheEvictEvent deviceCacheEvictEvent = new DeviceCacheEvictEvent(device.getTenantId(), device.getId(), device.getName(), oldDevice != null ? oldDevice.getName() : null);
|
||||
try {
|
||||
DeviceProfile deviceProfile;
|
||||
@ -259,6 +256,9 @@ public class DeviceServiceImpl extends CachedVersionedEntityService<DeviceCacheK
|
||||
}
|
||||
device.setType(deviceProfile.getName());
|
||||
device.setDeviceData(syncDeviceData(deviceProfile, device.getDeviceData()));
|
||||
if (nameConflictStrategy.policy() == NameConflictPolicy.UNIQUIFY) {
|
||||
uniquifyEntityName(device, oldDevice, device::setName, EntityType.DEVICE, nameConflictStrategy);
|
||||
}
|
||||
Device savedDevice = deviceDao.saveAndFlush(device.getTenantId(), device);
|
||||
deviceCacheEvictEvent.setSavedDevice(savedDevice);
|
||||
publishEvictEvent(deviceCacheEvictEvent);
|
||||
|
||||
@ -130,10 +130,10 @@ public class EntityViewServiceImpl extends CachedVersionedEntityService<EntityVi
|
||||
} else if (entityView.getId() != null) {
|
||||
old = findEntityViewById(entityView.getTenantId(), entityView.getId(), false);
|
||||
}
|
||||
try {
|
||||
if (nameConflictStrategy.policy() == NameConflictPolicy.UNIQUIFY) {
|
||||
uniquifyEntityName(entityView, old, entityView::setName, EntityType.ENTITY_VIEW, nameConflictStrategy);
|
||||
}
|
||||
try {
|
||||
EntityView saved = entityViewDao.save(entityView.getTenantId(), entityView);
|
||||
publishEvictEvent(new EntityViewEvictEvent(saved.getTenantId(), saved.getId(), saved.getEntityId(), old != null ? old.getEntityId() : null, saved.getName(), old != null ? old.getName() : null, saved));
|
||||
eventPublisher.publishEvent(SaveEntityEvent.builder().tenantId(saved.getTenantId())
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user