Fix public resource key generation for images
This commit is contained in:
		
							parent
							
								
									320cedd621
								
							
						
					
					
						commit
						aa38edb9ba
					
				@ -130,13 +130,14 @@ public class ImageControllerTest extends AbstractControllerTest {
 | 
			
		||||
        checkPngImageDescriptor(imageInfo.getDescriptor(ImageDescriptor.class));
 | 
			
		||||
 | 
			
		||||
        String newFilename = "my_jpeg_image.png";
 | 
			
		||||
        imageInfo = uploadImage(HttpMethod.PUT, "/api/images/tenant/" + filename, newFilename, "image/jpeg", JPEG_IMAGE);
 | 
			
		||||
        TbResourceInfo newImageInfo = uploadImage(HttpMethod.PUT, "/api/images/tenant/" + filename, newFilename, "image/jpeg", JPEG_IMAGE);
 | 
			
		||||
 | 
			
		||||
        assertThat(imageInfo.getTitle()).isEqualTo(filename);
 | 
			
		||||
        assertThat(imageInfo.getResourceKey()).isEqualTo(filename);
 | 
			
		||||
        assertThat(imageInfo.getFileName()).isEqualTo(newFilename);
 | 
			
		||||
        assertThat(newImageInfo.getTitle()).isEqualTo(filename);
 | 
			
		||||
        assertThat(newImageInfo.getResourceKey()).isEqualTo(filename);
 | 
			
		||||
        assertThat(newImageInfo.getFileName()).isEqualTo(newFilename);
 | 
			
		||||
        assertThat(newImageInfo.getPublicResourceKey()).isEqualTo(imageInfo.getPublicResourceKey());
 | 
			
		||||
 | 
			
		||||
        ImageDescriptor imageDescriptor = imageInfo.getDescriptor(ImageDescriptor.class);
 | 
			
		||||
        ImageDescriptor imageDescriptor = newImageInfo.getDescriptor(ImageDescriptor.class);
 | 
			
		||||
        checkJpegImageDescriptor(imageDescriptor);
 | 
			
		||||
 | 
			
		||||
        assertThat(downloadImage("tenant", filename)).containsExactly(JPEG_IMAGE);
 | 
			
		||||
@ -154,12 +155,15 @@ public class ImageControllerTest extends AbstractControllerTest {
 | 
			
		||||
        assertThat(imageInfo.getFileName()).isEqualTo(filename);
 | 
			
		||||
 | 
			
		||||
        String newTitle = "My PNG image";
 | 
			
		||||
        imageInfo.setTitle(newTitle);
 | 
			
		||||
        imageInfo.setDescriptor(JacksonUtil.newObjectNode());
 | 
			
		||||
        imageInfo = doPut("/api/images/tenant/" + filename + "/info", imageInfo, TbResourceInfo.class);
 | 
			
		||||
        TbResourceInfo newImageInfo = new TbResourceInfo(imageInfo);
 | 
			
		||||
        newImageInfo.setTitle(newTitle);
 | 
			
		||||
        newImageInfo.setDescriptor(JacksonUtil.newObjectNode());
 | 
			
		||||
        newImageInfo = doPut("/api/images/tenant/" + filename + "/info", newImageInfo, TbResourceInfo.class);
 | 
			
		||||
 | 
			
		||||
        assertThat(imageInfo.getTitle()).isEqualTo(newTitle);
 | 
			
		||||
        assertThat(imageInfo.getDescriptor(ImageDescriptor.class)).isEqualTo(imageDescriptor);
 | 
			
		||||
        assertThat(newImageInfo.getTitle()).isEqualTo(newTitle);
 | 
			
		||||
        assertThat(newImageInfo.getDescriptor(ImageDescriptor.class)).isEqualTo(imageDescriptor);
 | 
			
		||||
        assertThat(newImageInfo.getResourceKey()).isEqualTo(imageInfo.getResourceKey());
 | 
			
		||||
        assertThat(newImageInfo.getPublicResourceKey()).isEqualTo(newImageInfo.getPublicResourceKey());
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Test
 | 
			
		||||
 | 
			
		||||
@ -38,8 +38,6 @@
 | 
			
		||||
    <!-- Device actor message processor debug for the test scope -->
 | 
			
		||||
    <!--    <logger name="org.thingsboard.server.actors.device.DeviceActorMessageProcessor" level="DEBUG" />-->
 | 
			
		||||
 | 
			
		||||
    <logger name="org.thingsboard.server.service.subscription" level="TRACE"/>
 | 
			
		||||
 | 
			
		||||
    <root level="WARN">
 | 
			
		||||
        <appender-ref ref="console"/>
 | 
			
		||||
    </root>
 | 
			
		||||
 | 
			
		||||
@ -150,12 +150,9 @@ public class BaseImageService extends BaseResourceService implements ImageServic
 | 
			
		||||
        image.setDescriptorValue(descriptor);
 | 
			
		||||
        image.setPreview(result.getRight());
 | 
			
		||||
 | 
			
		||||
        if (StringUtils.isEmpty(image.getPublicResourceKey())) {
 | 
			
		||||
        if (StringUtils.isEmpty(image.getPublicResourceKey()) || (image.getId() == null &&
 | 
			
		||||
                resourceInfoDao.existsByPublicResourceKey(ResourceType.IMAGE, image.getPublicResourceKey()))) {
 | 
			
		||||
            image.setPublicResourceKey(generatePublicResourceKey());
 | 
			
		||||
        } else {
 | 
			
		||||
            if (resourceInfoDao.existsByPublicResourceKey(ResourceType.IMAGE, image.getPublicResourceKey())) {
 | 
			
		||||
                image.setPublicResourceKey(generatePublicResourceKey());
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        log.debug("[{}] Creating image {} ('{}')", image.getTenantId(), image.getResourceKey(), image.getName());
 | 
			
		||||
        return new TbResourceInfo(doSaveResource(image));
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user