Added delete all files

This commit is contained in:
2024-05-31 19:37:45 +02:00
parent dbb53ca9da
commit 7b683ce0a0
4 changed files with 45 additions and 3 deletions

View File

@ -2,16 +2,20 @@ package de.w665.sharepulse.rest.mappings;
import de.w665.sharepulse.SharepulseApplication;
import de.w665.sharepulse.db.repo.UserRepository;
import de.w665.sharepulse.model.FileUpload;
import de.w665.sharepulse.model.User;
import de.w665.sharepulse.rest.SecureApiRestController;
import de.w665.sharepulse.service.AuthenticationService;
import de.w665.sharepulse.service.FileCleanupService;
import jakarta.servlet.http.HttpServletRequest;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Optional;
@ -21,15 +25,19 @@ public class Administration extends SecureApiRestController {
private final UserRepository userRepository;
private final AuthenticationService authenticationService;
private final FileCleanupService fileCleanupService;
public Administration(UserRepository userRepository, AuthenticationService authenticationService) {
public Administration(UserRepository userRepository, AuthenticationService authenticationService, FileCleanupService fileCleanupService) {
this.userRepository = userRepository;
this.authenticationService = authenticationService;
this.fileCleanupService = fileCleanupService;
}
@GetMapping("/statistics")
public ResponseEntity<Object> getStatistics(HttpServletRequest request) {
// TODO: FIX LAST LOGIN
String token = request.getHeader("Authorization");
token = token.substring(7);
String username = authenticationService.getClaimValue(token, "username", String.class);
@ -47,4 +55,10 @@ public class Administration extends SecureApiRestController {
log.debug("Received statistics request");
return ResponseEntity.ok(response);
}
@DeleteMapping("/files")
public ResponseEntity<Object> deleteFiles(HttpServletRequest request) {
List<FileUpload> files = fileCleanupService.deleteFiles();
return ResponseEntity.ok(files);
}
}

View File

@ -33,4 +33,15 @@ public class FileCleanupService {
log.debug("Moved file " + fileUpload.getFileId() + " to old_file_uploads table.");
}
}
public List<FileUpload> deleteFiles() {
log.debug("Running cleanup. Clearing all files...");
List<FileUpload> fileUploads = fileUploadRepository.findAll();
for (FileUpload fileUpload : fileUploads) {
fileService.deleteFile(fileUpload);
expiredFileUploadRepository.insertExpiredFileUpload(fileUpload);
log.debug("Moved file " + fileUpload.getFileId() + " to old_file_uploads table.");
}
return fileUploads;
}
}