5 Commits

Author SHA1 Message Date
0f64322af3 Update build.gradle
All checks were successful
SharePulse build / build-jar (push) Successful in 3m47s
SharePulse build / build-docker-image (push) Successful in 13s
Updated libs with cve
2024-09-08 23:59:15 +02:00
e5ce27adfd Update build.gradle 2024-06-09 09:24:36 +00:00
Max
4134367350 Fixed auto file cleanup not working 2024-06-09 11:23:51 +02:00
f65a0d0e22 Merge pull request 'Fixed auto file cleanup not working' (#21) from bugfix/file-cron-auto-delete into main
Reviewed-on: https://git.walzen665.de/Walzen665/sharepulse/pulls/21
2024-06-09 09:01:52 +00:00
Max
e73a2e6e8d Fixed auto file cleanup not working 2024-06-09 11:00:37 +02:00
3 changed files with 25 additions and 25 deletions

View File

@ -5,7 +5,7 @@ plugins {
}
group = 'de.w665'
version = '1.2.0'
version = '1.2.1'
java {
sourceCompatibility = '21'
@ -39,11 +39,11 @@ dependencies {
// https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-security
implementation group: 'org.springframework.boot', name: 'spring-boot-starter-security', version: '3.2.4'
// https://mvnrepository.com/artifact/io.jsonwebtoken/jjwt-api
implementation group: 'io.jsonwebtoken', name: 'jjwt-api', version: '0.12.5'
implementation group: 'io.jsonwebtoken', name: 'jjwt-api', version: '0.12.6'
// https://mvnrepository.com/artifact/io.jsonwebtoken/jjwt-impl
runtimeOnly group: 'io.jsonwebtoken', name: 'jjwt-impl', version: '0.12.5'
runtimeOnly group: 'io.jsonwebtoken', name: 'jjwt-impl', version: '0.12.6'
// https://mvnrepository.com/artifact/io.jsonwebtoken/jjwt-orgjson
runtimeOnly group: 'io.jsonwebtoken', name: 'jjwt-orgjson', version: '0.12.5'
runtimeOnly group: 'io.jsonwebtoken', name: 'jjwt-orgjson', version: '0.12.6'
}

View File

@ -12,6 +12,8 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import java.lang.reflect.Type;
import java.time.Instant;
import java.time.temporal.ChronoUnit;
import java.util.*;
@Repository
@ -52,7 +54,12 @@ public class FileUploadRepository {
} catch (NoSuchElementException e) {
return Optional.empty();
}
}
public List<FileUpload> findAll() {
return r.db("sharepulse").table("file_uploads")
.run(connection, FileUpload.class)
.toList();
}
public void updateFileUpload(FileUpload updatedFileUpload) {
@ -79,32 +86,24 @@ public class FileUploadRepository {
.run(connection);
}
// This query filters all file uploads that are older than 24 hours from the file_uplaods table (not the expired_file_uploads table)
public List<FileUpload> findAllExpiredActiveFileUploads() {
long timestamp = getOneMinuteAgoTimestamp();
public List<FileUpload> getAllExpiredFileUploads() {
long timestamp = getTimestamp24HoursAgo();
return r.db("sharepulse").table("file_uploads")
.filter(row -> row.g("uploadDate").lt(timestamp))
.run(connection, FileUpload.class)
.toList();
}
public List<FileUpload> findAll() {
return r.db("sharepulse").table("file_uploads")
.run(connection, FileUpload.class)
.toList();
private long getTimestamp24HoursAgo() {
Instant now = Instant.now();
Instant oneMinuteAgo = now.minus(24, ChronoUnit.HOURS);
return oneMinuteAgo.toEpochMilli();
}
private long get24HoursAgoTimestamp() {
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.HOUR, -24);
return calendar.getTimeInMillis() / 1000;
// For testing only
private long getTimestampOneMinuteAgo() {
Instant now = Instant.now();
Instant oneMinuteAgo = now.minus(1, ChronoUnit.MINUTES);
return oneMinuteAgo.toEpochMilli();
}
private long getOneMinuteAgoTimestamp() {
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.MINUTE, -1); // Subtract 1 minute
return calendar.getTimeInMillis() / 1000; // Convert milliseconds to seconds (Unix timestamp)
}
}
}

View File

@ -23,10 +23,11 @@ public class FileCleanupService {
this.fileService = fileService;
}
//@Scheduled(cron = "*/10 * * * * *") // every 10 seconds
@Scheduled(cron = "0 0 * * * *")
public void cleanup() {
log.debug("Running cleanup...");
List<FileUpload> expFileUploads = fileUploadRepository.findAllExpiredActiveFileUploads();
List<FileUpload> expFileUploads = fileUploadRepository.getAllExpiredFileUploads();
for (FileUpload fileUpload : expFileUploads) {
fileService.deleteFile(fileUpload);
expiredFileUploadRepository.insertExpiredFileUpload(fileUpload);