Use JsonGetter/Setter to encode resource data; minor fixes
This commit is contained in:
parent
e7aabe80a4
commit
6eadef0d68
@ -43,7 +43,6 @@ import org.thingsboard.server.common.data.TbResourceInfo;
|
||||
import org.thingsboard.server.common.data.TbResourceInfoFilter;
|
||||
import org.thingsboard.server.common.data.exception.ThingsboardException;
|
||||
import org.thingsboard.server.common.data.id.TbResourceId;
|
||||
import org.thingsboard.server.common.data.id.TenantId;
|
||||
import org.thingsboard.server.common.data.lwm2m.LwM2mObject;
|
||||
import org.thingsboard.server.common.data.page.PageData;
|
||||
import org.thingsboard.server.common.data.page.PageLink;
|
||||
@ -53,7 +52,6 @@ import org.thingsboard.server.service.resource.TbResourceService;
|
||||
import org.thingsboard.server.service.security.permission.Operation;
|
||||
import org.thingsboard.server.service.security.permission.Resource;
|
||||
|
||||
import java.util.Base64;
|
||||
import java.util.Collections;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
@ -170,9 +168,7 @@ public class TbResourceController extends BaseController {
|
||||
@PathVariable(RESOURCE_ID) String strResourceId) throws ThingsboardException {
|
||||
checkParameter(RESOURCE_ID, strResourceId);
|
||||
TbResourceId resourceId = new TbResourceId(toUUID(strResourceId));
|
||||
TbResource resource = checkResourceId(resourceId, Operation.READ);
|
||||
resource.setBase64Data(Base64.getEncoder().encodeToString(resource.getData()));
|
||||
return resource;
|
||||
return checkResourceId(resourceId, Operation.READ);
|
||||
}
|
||||
|
||||
@ApiOperation(value = "Create Or Update Resource (saveResource)",
|
||||
@ -191,7 +187,7 @@ public class TbResourceController extends BaseController {
|
||||
@RequestBody TbResource resource) throws Exception {
|
||||
resource.setTenantId(getTenantId());
|
||||
checkEntity(resource.getId(), resource, Resource.TB_RESOURCE);
|
||||
return tbResourceService.save(resource, getCurrentUser());
|
||||
return new TbResourceInfo(tbResourceService.save(resource, getCurrentUser()));
|
||||
}
|
||||
|
||||
@ApiOperation(value = "Get Resource Infos (getResources)",
|
||||
|
||||
@ -23,8 +23,6 @@ import org.thingsboard.server.gen.edge.v1.ResourceUpdateMsg;
|
||||
import org.thingsboard.server.gen.edge.v1.UpdateMsgType;
|
||||
import org.thingsboard.server.queue.util.TbCoreComponent;
|
||||
|
||||
import java.util.Base64;
|
||||
|
||||
@Component
|
||||
@TbCoreComponent
|
||||
public class ResourceMsgConstructor {
|
||||
@ -39,7 +37,7 @@ public class ResourceMsgConstructor {
|
||||
.setResourceType(tbResource.getResourceType().name())
|
||||
.setFileName(tbResource.getFileName());
|
||||
if (tbResource.getData() != null) {
|
||||
builder.setData(Base64.getEncoder().encodeToString(tbResource.getData()));
|
||||
builder.setData(tbResource.getEncodedData());
|
||||
}
|
||||
if (tbResource.getEtag() != null) {
|
||||
builder.setEtag(tbResource.getEtag());
|
||||
|
||||
@ -46,7 +46,7 @@ public abstract class BaseResourceProcessor extends BaseEdgeProcessor {
|
||||
resource.setResourceKey(resourceUpdateMsg.getResourceKey());
|
||||
resource.setResourceType(ResourceType.valueOf(resourceUpdateMsg.getResourceType()));
|
||||
resource.setFileName(resourceUpdateMsg.getFileName());
|
||||
resource.setBase64Data(resourceUpdateMsg.hasData() ? resourceUpdateMsg.getData() : null);
|
||||
resource.setEncodedData(resourceUpdateMsg.hasData() ? resourceUpdateMsg.getData() : null);
|
||||
resource.setEtag(resourceUpdateMsg.hasEtag() ? resourceUpdateMsg.getEtag() : null);
|
||||
resourceValidator.validate(resource, TbResourceInfo::getTenantId);
|
||||
if (created) {
|
||||
|
||||
@ -101,7 +101,7 @@ public class TbResourceControllerTest extends AbstractControllerTest {
|
||||
resource.setResourceType(ResourceType.JKS);
|
||||
resource.setTitle("My first resource");
|
||||
resource.setFileName(DEFAULT_FILE_NAME);
|
||||
resource.setBase64Data(TEST_DATA);
|
||||
resource.setEncodedData(TEST_DATA);
|
||||
|
||||
TbResource savedResource = save(resource);
|
||||
|
||||
@ -119,6 +119,7 @@ public class TbResourceControllerTest extends AbstractControllerTest {
|
||||
Assert.assertArrayEquals(resource.getData(), download(savedResource.getId()));
|
||||
|
||||
savedResource.setTitle("My new resource");
|
||||
savedResource.setData(null);
|
||||
|
||||
save(savedResource);
|
||||
|
||||
@ -136,7 +137,7 @@ public class TbResourceControllerTest extends AbstractControllerTest {
|
||||
resource.setResourceType(ResourceType.JKS);
|
||||
resource.setTitle(StringUtils.randomAlphabetic(300));
|
||||
resource.setFileName(DEFAULT_FILE_NAME);
|
||||
resource.setBase64Data(TEST_DATA);
|
||||
resource.setEncodedData(TEST_DATA);
|
||||
|
||||
Mockito.reset(tbClusterService, auditLogService);
|
||||
|
||||
@ -155,7 +156,7 @@ public class TbResourceControllerTest extends AbstractControllerTest {
|
||||
resource.setResourceType(ResourceType.JKS);
|
||||
resource.setTitle("My first resource");
|
||||
resource.setFileName(DEFAULT_FILE_NAME);
|
||||
resource.setBase64Data(TEST_DATA);
|
||||
resource.setEncodedData(TEST_DATA);
|
||||
|
||||
TbResource savedResource = save(resource);
|
||||
|
||||
@ -184,7 +185,7 @@ public class TbResourceControllerTest extends AbstractControllerTest {
|
||||
resource.setResourceType(ResourceType.JKS);
|
||||
resource.setTitle("My first resource");
|
||||
resource.setFileName(DEFAULT_FILE_NAME);
|
||||
resource.setBase64Data(TEST_DATA);
|
||||
resource.setEncodedData(TEST_DATA);
|
||||
|
||||
TbResource savedResource = save(resource);
|
||||
|
||||
@ -200,7 +201,7 @@ public class TbResourceControllerTest extends AbstractControllerTest {
|
||||
resource.setResourceType(ResourceType.JKS);
|
||||
resource.setTitle("My first resource");
|
||||
resource.setFileName(DEFAULT_FILE_NAME);
|
||||
resource.setBase64Data(TEST_DATA);
|
||||
resource.setEncodedData(TEST_DATA);
|
||||
|
||||
TbResource savedResource = save(resource);
|
||||
|
||||
@ -225,7 +226,7 @@ public class TbResourceControllerTest extends AbstractControllerTest {
|
||||
resource.setResourceType(ResourceType.JKS);
|
||||
resource.setTitle("My first resource");
|
||||
resource.setFileName(DEFAULT_FILE_NAME);
|
||||
resource.setBase64Data(TEST_DATA);
|
||||
resource.setEncodedData(TEST_DATA);
|
||||
|
||||
TbResource savedResource = save(resource);
|
||||
|
||||
@ -256,7 +257,7 @@ public class TbResourceControllerTest extends AbstractControllerTest {
|
||||
resource.setTitle("Resource" + i);
|
||||
resource.setResourceType(ResourceType.JKS);
|
||||
resource.setFileName(i + DEFAULT_FILE_NAME);
|
||||
resource.setBase64Data(TEST_DATA);
|
||||
resource.setEncodedData(TEST_DATA);
|
||||
resources.add(new TbResourceInfo(save(resource)));
|
||||
}
|
||||
List<TbResourceInfo> loadedResources = new ArrayList<>();
|
||||
@ -293,7 +294,7 @@ public class TbResourceControllerTest extends AbstractControllerTest {
|
||||
resource.setTitle("JKS Resource" + i);
|
||||
resource.setResourceType(ResourceType.JKS);
|
||||
resource.setFileName(i + DEFAULT_FILE_NAME);
|
||||
resource.setBase64Data(TEST_DATA);
|
||||
resource.setEncodedData(TEST_DATA);
|
||||
resources.add(new TbResourceInfo(save(resource)));
|
||||
}
|
||||
|
||||
@ -303,7 +304,7 @@ public class TbResourceControllerTest extends AbstractControllerTest {
|
||||
resource.setTitle("LWM2M Resource" + i);
|
||||
resource.setResourceType(ResourceType.PKCS_12);
|
||||
resource.setFileName(i + DEFAULT_FILE_NAME_2);
|
||||
resource.setBase64Data(TEST_DATA);
|
||||
resource.setEncodedData(TEST_DATA);
|
||||
save(resource);
|
||||
}
|
||||
|
||||
@ -340,7 +341,7 @@ public class TbResourceControllerTest extends AbstractControllerTest {
|
||||
resource.setTitle("Resource" + i);
|
||||
resource.setResourceType(ResourceType.JKS);
|
||||
resource.setFileName(i + DEFAULT_FILE_NAME);
|
||||
resource.setBase64Data(TEST_DATA);
|
||||
resource.setEncodedData(TEST_DATA);
|
||||
resources.add(new TbResourceInfo(save(resource)));
|
||||
}
|
||||
List<TbResourceInfo> loadedResources = new ArrayList<>();
|
||||
@ -400,7 +401,7 @@ public class TbResourceControllerTest extends AbstractControllerTest {
|
||||
resource.setTitle("JKS Resource" + i);
|
||||
resource.setResourceType(ResourceType.JKS);
|
||||
resource.setFileName(i + DEFAULT_FILE_NAME);
|
||||
resource.setBase64Data(TEST_DATA);
|
||||
resource.setEncodedData(TEST_DATA);
|
||||
TbResourceInfo saved = new TbResourceInfo(save(resource));
|
||||
jksResources.add(saved);
|
||||
}
|
||||
@ -411,7 +412,7 @@ public class TbResourceControllerTest extends AbstractControllerTest {
|
||||
resource.setTitle("LWM2M Resource" + i);
|
||||
resource.setResourceType(ResourceType.PKCS_12);
|
||||
resource.setFileName(i + DEFAULT_FILE_NAME_2);
|
||||
resource.setBase64Data(TEST_DATA);
|
||||
resource.setEncodedData(TEST_DATA);
|
||||
TbResource saved = save(resource);
|
||||
lwm2mesources.add(saved);
|
||||
}
|
||||
@ -477,7 +478,7 @@ public class TbResourceControllerTest extends AbstractControllerTest {
|
||||
resource.setTitle("Resource" + i);
|
||||
resource.setResourceType(ResourceType.JKS);
|
||||
resource.setFileName(i + DEFAULT_FILE_NAME);
|
||||
resource.setBase64Data(TEST_DATA);
|
||||
resource.setEncodedData(TEST_DATA);
|
||||
expectedResources.add(new TbResourceInfo(save(resource)));
|
||||
}
|
||||
|
||||
@ -488,7 +489,7 @@ public class TbResourceControllerTest extends AbstractControllerTest {
|
||||
resource.setTitle("Resource" + i);
|
||||
resource.setResourceType(ResourceType.JKS);
|
||||
resource.setFileName(i + DEFAULT_FILE_NAME);
|
||||
resource.setBase64Data(TEST_DATA);
|
||||
resource.setEncodedData(TEST_DATA);
|
||||
TbResourceInfo savedResource = new TbResourceInfo(save(resource));
|
||||
systemResources.add(savedResource);
|
||||
if (i >= 73) {
|
||||
@ -532,7 +533,7 @@ public class TbResourceControllerTest extends AbstractControllerTest {
|
||||
resource.setResourceType(ResourceType.JS_MODULE);
|
||||
resource.setTitle("Js resource");
|
||||
resource.setFileName(JS_TEST_FILE_NAME);
|
||||
resource.setBase64Data(TEST_DATA);
|
||||
resource.setEncodedData(TEST_DATA);
|
||||
|
||||
TbResource savedResource = save(resource);
|
||||
|
||||
@ -563,7 +564,7 @@ public class TbResourceControllerTest extends AbstractControllerTest {
|
||||
resource.setResourceType(ResourceType.JS_MODULE);
|
||||
resource.setTitle("Js resource");
|
||||
resource.setFileName(JS_TEST_FILE_NAME);
|
||||
resource.setBase64Data(TEST_DATA);
|
||||
resource.setEncodedData(TEST_DATA);
|
||||
|
||||
TbResource savedResource = save(resource);
|
||||
|
||||
@ -607,7 +608,7 @@ public class TbResourceControllerTest extends AbstractControllerTest {
|
||||
resource.setResourceType(ResourceType.JS_MODULE);
|
||||
resource.setTitle("Js resource");
|
||||
resource.setFileName(JS_TEST_FILE_NAME);
|
||||
resource.setBase64Data(TEST_DATA);
|
||||
resource.setEncodedData(TEST_DATA);
|
||||
|
||||
TbResource savedResource = save(resource);
|
||||
|
||||
@ -623,16 +624,16 @@ public class TbResourceControllerTest extends AbstractControllerTest {
|
||||
resource.setResourceType(ResourceType.PKCS_12);
|
||||
resource.setTitle("My resource");
|
||||
resource.setFileName("3.pks");
|
||||
resource.setBase64Data(TEST_DATA);
|
||||
resource.setEncodedData(TEST_DATA);
|
||||
TbResource savedResource = save(resource);
|
||||
resource.setEtag(savedResource.getEtag());
|
||||
|
||||
savedResource.setBase64Data(TEST_DATA);
|
||||
savedResource.setEncodedData(TEST_DATA);
|
||||
doPost("/api/resource", savedResource)
|
||||
.andExpect(status().isBadRequest())
|
||||
.andExpect(statusReason(containsString("can't be updated")));
|
||||
|
||||
savedResource.setBase64Data(null);
|
||||
savedResource.setData(null);
|
||||
savedResource.setTitle("Updated resource");
|
||||
savedResource = doPost("/api/resource", savedResource, TbResource.class);
|
||||
assertThat(savedResource.getTitle()).isEqualTo("Updated resource");
|
||||
@ -647,12 +648,12 @@ public class TbResourceControllerTest extends AbstractControllerTest {
|
||||
resource.setResourceType(ResourceType.JS_MODULE);
|
||||
resource.setTitle("My resource");
|
||||
resource.setFileName("module.js");
|
||||
resource.setBase64Data(TEST_DATA);
|
||||
resource.setEncodedData(TEST_DATA);
|
||||
TbResource savedResource = save(resource);
|
||||
resource.setEtag(savedResource.getEtag());
|
||||
|
||||
String newData = Base64.getEncoder().encodeToString(new byte[]{1, 2, 3});
|
||||
savedResource.setBase64Data(newData);
|
||||
savedResource.setEncodedData(newData);
|
||||
savedResource.setFileName("new-module.js");
|
||||
savedResource.setTitle("Updated title");
|
||||
savedResource = save(savedResource);
|
||||
|
||||
@ -45,7 +45,7 @@ public class ResourceEdgeTest extends AbstractEdgeTest {
|
||||
resource.setResourceType(ResourceType.JKS);
|
||||
resource.setTitle("Edge Test Resource");
|
||||
resource.setFileName(FILE_NAME);
|
||||
resource.setBase64Data(TEST_DATA);
|
||||
resource.setEncodedData(TEST_DATA);
|
||||
|
||||
edgeImitator.expectMessageAmount(1);
|
||||
TbResource savedResource = doPost("/api/resource", resource, TbResource.class);
|
||||
@ -119,6 +119,6 @@ public class ResourceEdgeTest extends AbstractEdgeTest {
|
||||
TbResource tbResource = doGet("/api/resource/" + uuid, TbResource.class);
|
||||
Assert.assertNotNull(tbResource);
|
||||
Assert.assertEquals("Edge Test Resource", tbResource.getName());
|
||||
Assert.assertEquals(TEST_DATA, tbResource.getBase64Data());
|
||||
Assert.assertEquals(TEST_DATA, tbResource.getEncodedData());
|
||||
}
|
||||
}
|
||||
|
||||
@ -209,7 +209,7 @@ public class BaseTbResourceServiceTest extends AbstractControllerTest {
|
||||
resource.setResourceType(ResourceType.JKS);
|
||||
resource.setFileName(filename);
|
||||
byte[] b = new byte[]{1, 2, 3, 4};
|
||||
resource.setBase64Data(Base64.getEncoder().encodeToString(b));
|
||||
resource.setData(b);
|
||||
return tbResourceService.save(resource);
|
||||
}
|
||||
|
||||
@ -220,7 +220,7 @@ public class BaseTbResourceServiceTest extends AbstractControllerTest {
|
||||
resource.setResourceType(ResourceType.JKS);
|
||||
resource.setTitle("My first resource");
|
||||
resource.setFileName(DEFAULT_FILE_NAME);
|
||||
resource.setBase64Data(TEST_BASE64_DATA);
|
||||
resource.setData(TEST_DATA);
|
||||
|
||||
TbResource savedResource = tbResourceService.save(resource);
|
||||
|
||||
@ -233,7 +233,6 @@ public class BaseTbResourceServiceTest extends AbstractControllerTest {
|
||||
assertArrayEquals(TEST_DATA, savedResource.getData());
|
||||
|
||||
savedResource.setTitle("My new resource");
|
||||
savedResource.setBase64Data(null);
|
||||
savedResource.setData(null);
|
||||
|
||||
tbResourceService.save(savedResource);
|
||||
@ -250,7 +249,7 @@ public class BaseTbResourceServiceTest extends AbstractControllerTest {
|
||||
resource.setTenantId(tenantId);
|
||||
resource.setResourceType(ResourceType.LWM2M_MODEL);
|
||||
resource.setFileName("test_model.xml");
|
||||
resource.setBase64Data(Base64.getEncoder().encodeToString(LWM2M_TEST_MODEL.getBytes()));
|
||||
resource.setEncodedData(Base64.getEncoder().encodeToString(LWM2M_TEST_MODEL.getBytes()));
|
||||
|
||||
TbResource savedResource = tbResourceService.save(resource);
|
||||
|
||||
@ -271,7 +270,7 @@ public class BaseTbResourceServiceTest extends AbstractControllerTest {
|
||||
resource.setResourceType(ResourceType.JKS);
|
||||
resource.setTitle("My resource");
|
||||
resource.setFileName(DEFAULT_FILE_NAME);
|
||||
resource.setBase64Data(TEST_BASE64_DATA);
|
||||
resource.setData(TEST_DATA);
|
||||
TbResource savedResource = tbResourceService.save(resource);
|
||||
|
||||
assertEquals(TenantId.SYS_TENANT_ID, savedResource.getTenantId());
|
||||
@ -286,7 +285,7 @@ public class BaseTbResourceServiceTest extends AbstractControllerTest {
|
||||
resource.setResourceType(ResourceType.JKS);
|
||||
resource.setTitle("My resource");
|
||||
resource.setFileName(DEFAULT_FILE_NAME);
|
||||
resource.setBase64Data(TEST_BASE64_DATA);
|
||||
resource.setData(TEST_DATA);
|
||||
|
||||
TbResource savedResource = tbResourceService.save(resource);
|
||||
|
||||
@ -295,7 +294,7 @@ public class BaseTbResourceServiceTest extends AbstractControllerTest {
|
||||
resource.setResourceType(ResourceType.JKS);
|
||||
resource.setTitle("My resource");
|
||||
resource.setFileName(DEFAULT_FILE_NAME);
|
||||
resource.setBase64Data(TEST_BASE64_DATA);
|
||||
resource.setData(TEST_DATA);
|
||||
|
||||
try {
|
||||
Assertions.assertThrows(DataValidationException.class, () -> {
|
||||
@ -312,7 +311,7 @@ public class BaseTbResourceServiceTest extends AbstractControllerTest {
|
||||
resource.setTenantId(tenantId);
|
||||
resource.setResourceType(ResourceType.JKS);
|
||||
resource.setFileName(DEFAULT_FILE_NAME);
|
||||
resource.setBase64Data(TEST_BASE64_DATA);
|
||||
resource.setData(TEST_DATA);
|
||||
Assertions.assertThrows(DataValidationException.class, () -> {
|
||||
tbResourceService.save(resource);
|
||||
});
|
||||
@ -325,7 +324,7 @@ public class BaseTbResourceServiceTest extends AbstractControllerTest {
|
||||
resource.setResourceType(ResourceType.JKS);
|
||||
resource.setTitle("My resource");
|
||||
resource.setFileName(DEFAULT_FILE_NAME);
|
||||
resource.setBase64Data(TEST_BASE64_DATA);
|
||||
resource.setData(TEST_DATA);
|
||||
Assertions.assertThrows(DataValidationException.class, () -> {
|
||||
tbResourceService.save(resource);
|
||||
});
|
||||
@ -352,7 +351,7 @@ public class BaseTbResourceServiceTest extends AbstractControllerTest {
|
||||
resource.setResourceType(ResourceType.JKS);
|
||||
resource.setTitle("My resource");
|
||||
resource.setFileName(DEFAULT_FILE_NAME);
|
||||
resource.setBase64Data(TEST_BASE64_DATA);
|
||||
resource.setData(TEST_DATA);
|
||||
TbResource savedResource = tbResourceService.save(resource);
|
||||
|
||||
TbResource foundResource = resourceService.findResourceById(tenantId, savedResource.getId());
|
||||
@ -368,7 +367,7 @@ public class BaseTbResourceServiceTest extends AbstractControllerTest {
|
||||
resource.setTenantId(tenantId);
|
||||
resource.setTitle("My resource");
|
||||
resource.setFileName(DEFAULT_FILE_NAME);
|
||||
resource.setBase64Data(TEST_BASE64_DATA);
|
||||
resource.setData(TEST_DATA);
|
||||
TbResource savedResource = tbResourceService.save(resource);
|
||||
|
||||
TbResource foundResource = resourceService.findResourceByTenantIdAndKey(tenantId, savedResource.getResourceType(), savedResource.getResourceKey());
|
||||
@ -383,7 +382,7 @@ public class BaseTbResourceServiceTest extends AbstractControllerTest {
|
||||
resource.setResourceType(ResourceType.JKS);
|
||||
resource.setTitle("My resource");
|
||||
resource.setFileName(DEFAULT_FILE_NAME);
|
||||
resource.setBase64Data(TEST_BASE64_DATA);
|
||||
resource.setData(TEST_DATA);
|
||||
TbResource savedResource = tbResourceService.save(resource);
|
||||
|
||||
TbResource foundResource = resourceService.findResourceById(tenantId, savedResource.getId());
|
||||
@ -409,7 +408,7 @@ public class BaseTbResourceServiceTest extends AbstractControllerTest {
|
||||
resource.setTitle("Resource" + i);
|
||||
resource.setResourceType(ResourceType.JKS);
|
||||
resource.setFileName(i + DEFAULT_FILE_NAME);
|
||||
resource.setBase64Data(TEST_BASE64_DATA);
|
||||
resource.setData(TEST_DATA);
|
||||
resources.add(new TbResourceInfo(tbResourceService.save(resource)));
|
||||
}
|
||||
|
||||
@ -463,7 +462,7 @@ public class BaseTbResourceServiceTest extends AbstractControllerTest {
|
||||
resource.setTitle("System Resource" + i);
|
||||
resource.setResourceType(ResourceType.JKS);
|
||||
resource.setFileName(i + DEFAULT_FILE_NAME);
|
||||
resource.setBase64Data(TEST_BASE64_DATA);
|
||||
resource.setData(TEST_DATA);
|
||||
TbResourceInfo tbResourceInfo = new TbResourceInfo(tbResourceService.save(resource));
|
||||
if (i >= 50) {
|
||||
resources.add(tbResourceInfo);
|
||||
@ -476,7 +475,7 @@ public class BaseTbResourceServiceTest extends AbstractControllerTest {
|
||||
resource.setTitle("Tenant Resource" + i);
|
||||
resource.setResourceType(ResourceType.JKS);
|
||||
resource.setFileName(i + DEFAULT_FILE_NAME);
|
||||
resource.setBase64Data(TEST_BASE64_DATA);
|
||||
resource.setData(TEST_DATA);
|
||||
resources.add(new TbResourceInfo(tbResourceService.save(resource)));
|
||||
}
|
||||
|
||||
|
||||
@ -206,7 +206,7 @@ public abstract class AbstractLwM2MIntegrationTest extends AbstractTransportInte
|
||||
lwModel.setFileName(resourceName);
|
||||
lwModel.setTenantId(tenantId);
|
||||
byte[] bytes = IOUtils.toByteArray(AbstractLwM2MIntegrationTest.class.getClassLoader().getResourceAsStream("lwm2m/" + resourceName));
|
||||
lwModel.setBase64Data(Base64.getEncoder().encodeToString(bytes));
|
||||
lwModel.setData(bytes);
|
||||
lwModel = doPostWithTypedResponse("/api/resource", lwModel, new TypeReference<>() {
|
||||
});
|
||||
Assert.assertNotNull(lwModel);
|
||||
|
||||
@ -24,7 +24,7 @@ public enum ResourceType {
|
||||
JKS("application/x-java-keystore", false, false),
|
||||
PKCS_12("application/x-pkcs12", false, false),
|
||||
JS_MODULE("application/javascript", true, true),
|
||||
IMAGE(null, true, false);
|
||||
IMAGE(null, true, true);
|
||||
|
||||
@Getter
|
||||
private final String mediaType;
|
||||
|
||||
File diff suppressed because one or more lines are too long
@ -32,8 +32,10 @@ import org.thingsboard.server.dao.resource.TbResourceInfoDao;
|
||||
import org.thingsboard.server.dao.sql.JpaAbstractDao;
|
||||
import org.thingsboard.server.dao.util.SqlDao;
|
||||
|
||||
import java.util.EnumSet;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@ -57,22 +59,28 @@ public class JpaTbResourceInfoDao extends JpaAbstractDao<TbResourceInfoEntity, T
|
||||
|
||||
@Override
|
||||
public PageData<TbResourceInfo> findAllTenantResourcesByTenantId(TbResourceInfoFilter filter, PageLink pageLink) {
|
||||
Set<ResourceType> resourceTypes = filter.getResourceTypes();
|
||||
if (CollectionsUtil.isEmpty(resourceTypes)) {
|
||||
resourceTypes = EnumSet.allOf(ResourceType.class);
|
||||
}
|
||||
return DaoUtil.toPageData(resourceInfoRepository
|
||||
.findAllTenantResourcesByTenantId(
|
||||
filter.getTenantId().getId(), TenantId.NULL_UUID,
|
||||
CollectionsUtil.isNotEmpty(filter.getResourceTypes()) ? filter.getResourceTypes()
|
||||
.stream().map(Enum::name).collect(Collectors.toList()) : null,
|
||||
resourceTypes.stream().map(Enum::name).collect(Collectors.toList()),
|
||||
Objects.toString(pageLink.getTextSearch(), ""),
|
||||
DaoUtil.toPageable(pageLink)));
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageData<TbResourceInfo> findTenantResourcesByTenantId(TbResourceInfoFilter filter, PageLink pageLink) {
|
||||
Set<ResourceType> resourceTypes = filter.getResourceTypes();
|
||||
if (CollectionsUtil.isEmpty(resourceTypes)) {
|
||||
resourceTypes = EnumSet.allOf(ResourceType.class);
|
||||
}
|
||||
return DaoUtil.toPageData(resourceInfoRepository
|
||||
.findTenantResourcesByTenantId(
|
||||
filter.getTenantId().getId(),
|
||||
CollectionsUtil.isNotEmpty(filter.getResourceTypes()) ? filter.getResourceTypes()
|
||||
.stream().map(Enum::name).collect(Collectors.toList()) : null,
|
||||
resourceTypes.stream().map(Enum::name).collect(Collectors.toList()),
|
||||
pageLink.getTextSearch(),
|
||||
DaoUtil.toPageable(pageLink)));
|
||||
}
|
||||
|
||||
@ -67,7 +67,7 @@
|
||||
</mat-error>
|
||||
</mat-form-field>
|
||||
<tb-file-input *ngIf="isAdd || (isEdit && entityForm.get('resourceType').value === resourceType.JS_MODULE)"
|
||||
formControlName="base64Data"
|
||||
formControlName="data"
|
||||
required
|
||||
[readAsBinary]="true"
|
||||
[allowedExtensions]="getAllowedExtensions()"
|
||||
|
||||
@ -68,7 +68,7 @@ export class ResourcesLibraryComponent extends EntityComponent<Resource> impleme
|
||||
this.entityForm.get('title').enable({emitEvent: false});
|
||||
}
|
||||
this.entityForm.patchValue({
|
||||
base64Data: null,
|
||||
data: null,
|
||||
fileName: null
|
||||
}, {emitEvent: false});
|
||||
});
|
||||
@ -93,7 +93,7 @@ export class ResourcesLibraryComponent extends EntityComponent<Resource> impleme
|
||||
title: [entity ? entity.title : '', [Validators.required, Validators.maxLength(255)]],
|
||||
resourceType: [entity?.resourceType ? entity.resourceType : ResourceType.JS_MODULE, Validators.required],
|
||||
fileName: [entity ? entity.fileName : null, Validators.required],
|
||||
base64Data: [entity ? entity.base64Data : null, Validators.required]
|
||||
data: [entity ? entity.data : null, Validators.required]
|
||||
});
|
||||
}
|
||||
|
||||
@ -102,20 +102,20 @@ export class ResourcesLibraryComponent extends EntityComponent<Resource> impleme
|
||||
this.entityForm.get('resourceType').disable({emitEvent: false});
|
||||
if (entity.resourceType !== ResourceType.JS_MODULE) {
|
||||
this.entityForm.get('fileName').disable({emitEvent: false});
|
||||
this.entityForm.get('base64Data').disable({emitEvent: false});
|
||||
this.entityForm.get('data').disable({emitEvent: false});
|
||||
}
|
||||
}
|
||||
this.entityForm.patchValue({
|
||||
resourceType: entity.resourceType,
|
||||
fileName: entity.fileName,
|
||||
title: entity.title,
|
||||
base64Data: entity.base64Data
|
||||
data: entity.data
|
||||
});
|
||||
}
|
||||
|
||||
prepareFormValue(formValue: Resource): Resource {
|
||||
if (this.isEdit && !isDefinedAndNotNull(formValue.base64Data)) {
|
||||
delete formValue.base64Data;
|
||||
if (this.isEdit && !isDefinedAndNotNull(formValue.data)) {
|
||||
delete formValue.data;
|
||||
}
|
||||
return super.prepareFormValue(formValue);
|
||||
}
|
||||
|
||||
@ -64,6 +64,6 @@ export interface ResourceInfo extends Omit<BaseData<TbResourceId>, 'name' | 'lab
|
||||
}
|
||||
|
||||
export interface Resource extends ResourceInfo {
|
||||
base64Data: string;
|
||||
data: string;
|
||||
name?: string;
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user