From ec51b8c39abdd5947d8eedb681065e1f8a0ddd54 Mon Sep 17 00:00:00 2001 From: Rostislav Raykov Date: Mon, 7 Oct 2024 01:03:10 +0300 Subject: [PATCH] minor refactoring --- .../quickdrop/controller/FileViewController.java | 16 ++++++---------- .../quickdrop/service/ScheduleService.java | 2 +- .../org/rostislav/quickdrop/util/FileUtils.java | 8 ++++++++ src/main/resources/application.properties | 3 +++ src/main/resources/templates/fileView.html | 2 +- 5 files changed, 19 insertions(+), 12 deletions(-) diff --git a/src/main/java/org/rostislav/quickdrop/controller/FileViewController.java b/src/main/java/org/rostislav/quickdrop/controller/FileViewController.java index cd9df9b..97b720d 100644 --- a/src/main/java/org/rostislav/quickdrop/controller/FileViewController.java +++ b/src/main/java/org/rostislav/quickdrop/controller/FileViewController.java @@ -3,7 +3,6 @@ package org.rostislav.quickdrop.controller; import jakarta.servlet.http.HttpServletRequest; import org.rostislav.quickdrop.model.FileEntity; import org.rostislav.quickdrop.service.FileService; -import org.rostislav.quickdrop.util.FileUtils; import org.springframework.core.io.Resource; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; @@ -15,7 +14,7 @@ import org.springframework.web.bind.annotation.RequestMapping; import java.util.List; -import static org.rostislav.quickdrop.util.FileUtils.getDownloadLink; +import static org.rostislav.quickdrop.util.FileUtils.populateModelAttributes; @Controller @RequestMapping("/file") @@ -41,9 +40,7 @@ public class FileViewController { @GetMapping("/{uuid}") public String filePage(@PathVariable String uuid, Model model, HttpServletRequest request) { FileEntity fileEntity = fileService.getFile(uuid); - model.addAttribute("file", fileEntity); - model.addAttribute("downloadLink", getDownloadLink(request, fileEntity)); - model.addAttribute("fileSize", FileUtils.formatFileSize(fileEntity.size)); + populateModelAttributes(fileEntity, model, request); return "fileView"; } @@ -51,9 +48,7 @@ public class FileViewController { @GetMapping("/uploaded/{uuid}") public String uploadedFile(@PathVariable String uuid, Model model, HttpServletRequest request) { FileEntity fileEntity = fileService.getFile(uuid); - model.addAttribute("file", fileEntity); - model.addAttribute("fileSize", FileUtils.formatFileSize(fileEntity.size)); - model.addAttribute("downloadLink", getDownloadLink(request, fileEntity)); + populateModelAttributes(fileEntity, model, request); return "fileUploaded"; } @@ -64,10 +59,11 @@ public class FileViewController { } @PostMapping("/extend/{id}") - public String extendFile(@PathVariable Long id, Model model) { + public String extendFile(@PathVariable Long id, Model model, HttpServletRequest request) { fileService.extendFile(id); - model.addAttribute("file", fileService.getFile(id)); + FileEntity fileEntity = fileService.getFile(id); + populateModelAttributes(fileEntity, model, request); return "fileView"; } } diff --git a/src/main/java/org/rostislav/quickdrop/service/ScheduleService.java b/src/main/java/org/rostislav/quickdrop/service/ScheduleService.java index 8c61d9f..7053812 100644 --- a/src/main/java/org/rostislav/quickdrop/service/ScheduleService.java +++ b/src/main/java/org/rostislav/quickdrop/service/ScheduleService.java @@ -24,7 +24,7 @@ public class ScheduleService { this.fileService = fileService; } - @Scheduled(cron = "0 0 2 * * *") + @Scheduled(cron = "${file.deletion.cron}") public void deleteOldFiles() { logger.info("Deleting old files"); LocalDate thresholdDate = LocalDate.now().minusDays(maxFileAge); diff --git a/src/main/java/org/rostislav/quickdrop/util/FileUtils.java b/src/main/java/org/rostislav/quickdrop/util/FileUtils.java index 9cbdb2e..3ab1390 100644 --- a/src/main/java/org/rostislav/quickdrop/util/FileUtils.java +++ b/src/main/java/org/rostislav/quickdrop/util/FileUtils.java @@ -2,8 +2,10 @@ package org.rostislav.quickdrop.util; import jakarta.servlet.http.HttpServletRequest; import org.rostislav.quickdrop.model.FileEntity; +import org.springframework.ui.Model; public class FileUtils { + public static String formatFileSize(long size) { String[] units = {"B", "KB", "MB", "GB", "TB"}; int unitIndex = 0; @@ -18,4 +20,10 @@ public class FileUtils { public static String getDownloadLink(HttpServletRequest request, FileEntity fileEntity) { return request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + "/file/" + fileEntity.uuid; } + + public static void populateModelAttributes(FileEntity fileEntity, Model model, HttpServletRequest request) { + model.addAttribute("file", fileEntity); + model.addAttribute("fileSize", FileUtils.formatFileSize(fileEntity.size)); + model.addAttribute("downloadLink", getDownloadLink(request, fileEntity)); + } } diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 144df4c..53aaaca 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -12,5 +12,8 @@ spring.servlet.multipart.max-request-size=1024MB server.tomcat.connection-timeout=60000 file.save.path=/files file.max.age=30 +logging.file.path=/var/log/quickdrop +logging.file.name=quickdrop.log +file.deletion.cron=0 0 2 * * * #logging.level.org.springframework=DEBUG #logging.level.org.hibernate=DEBUG \ No newline at end of file diff --git a/src/main/resources/templates/fileView.html b/src/main/resources/templates/fileView.html index 20d4355..fcb3eac 100644 --- a/src/main/resources/templates/fileView.html +++ b/src/main/resources/templates/fileView.html @@ -45,7 +45,7 @@

Link

-

+

Download