diff --git a/src/main/java/ru/soune/nocopy/controller/FileController.java b/src/main/java/ru/soune/nocopy/controller/FileController.java index 56830a0..ba45a02 100644 --- a/src/main/java/ru/soune/nocopy/controller/FileController.java +++ b/src/main/java/ru/soune/nocopy/controller/FileController.java @@ -1,6 +1,5 @@ package ru.soune.nocopy.controller; -import com.google.api.client.util.IOUtils; import com.google.common.io.ByteStreams; import com.vrt.NoCopyFileService; import com.vrt.fileprotection.FileProtector; @@ -12,28 +11,23 @@ import org.springframework.http.*; import org.springframework.web.bind.annotation.*; import org.springframework.web.servlet.mvc.method.annotation.StreamingResponseBody; import ru.soune.nocopy.dto.file.CheckStatus; +import ru.soune.nocopy.dto.file.FileEntityResponse; import ru.soune.nocopy.entity.file.FileEntity; import ru.soune.nocopy.entity.file.ProtectionStatus; import ru.soune.nocopy.entity.user.ProtectedFileCheck; import ru.soune.nocopy.entity.user.User; import ru.soune.nocopy.repository.FileEntityRepository; import ru.soune.nocopy.repository.UserRepository; -import ru.soune.nocopy.service.file.CheckCounterService; -import ru.soune.nocopy.service.file.FileStorageService; -import ru.soune.nocopy.service.file.ImageResizeService; -import ru.soune.nocopy.service.file.ZipService; +import ru.soune.nocopy.service.file.*; import ru.soune.nocopy.service.file.cloud.CloudStorageService; import ru.soune.nocopy.util.FileUtil; +import software.amazon.awssdk.services.mq.model.NotFoundException; import software.amazon.awssdk.services.s3.model.NoSuchKeyException; import java.io.*; import java.net.URLEncoder; import java.nio.charset.StandardCharsets; -import java.nio.file.Files; -import java.nio.file.Path; -import java.nio.file.Paths; - @RestController @RequestMapping("/api/files") @Slf4j @@ -48,7 +42,7 @@ public class FileController { private UserRepository userRepository; - private ImageResizeService imageResizeService; + private final FileEntityService fileEntityService; private NoCopyFileService noCopyFileService; @@ -96,6 +90,24 @@ public class FileController { } } + @GetMapping("/public/file-info/{fileId}") + public ResponseEntity getPublicFileInfo(@PathVariable String fileId) { + return handleGetFileInfo(fileId); + } + + private ResponseEntity handleGetFileInfo(String fileId) { + try { + FileEntityResponse fileInfo = fileEntityService.getById(fileId, 1); + + return ResponseEntity + .ok() + .body(fileInfo); + } catch (NotFoundException e) { + return ResponseEntity + .notFound().build(); + } + } + private MediaType getMediaType(FileEntity fileEntity) { try { return MediaType.parseMediaType(fileEntity.getMimeType()); @@ -124,13 +136,6 @@ public class FileController { String filePath = type.equals("thumbnail") ? fileEntity.getThumbnailPath(): fileEntity.getFilePath(); -// InputStream file = cloudStorageService.readFileFromStorage(filePath); - -// if (file == null || !file.exists()) { -// log.error("File not found in storage: {}", fileEntity.getFilePath()); -// return ResponseEntity.notFound().build(); -// } - if (fileEntity.getProtectionStatus() == ProtectionStatus.NOT_PROTECTED || fileEntity.getProtectionStatus() == ProtectionStatus.PROCESSING) { throw new RuntimeException("File is not protected");