Small fixes

This commit is contained in:
2026-04-22 13:26:26 +02:00
parent c7ee90cbaa
commit 23db8681d3
4 changed files with 13 additions and 17 deletions

View File

@@ -11,15 +11,15 @@ import jakarta.decorator.Delegate;
import jakarta.inject.Inject;
import jakarta.inject.Named;
import sh.rhiobet.lalafin.advent.access.AdventAccessService;
import sh.rhiobet.lalafin.api.configuration.FileApiConfiguration;
import sh.rhiobet.lalafin.core.path.model.Path;
import sh.rhiobet.lalafin.core.path.model.PathAccessor;
import sh.rhiobet.lalafin.core.path.plugin.PathPlugin;
import sh.rhiobet.lalafin.file.configuration.FileConfiguration;
@Decorator
public class AdventThumbnailPathPlugin extends PathAccessor implements PathPlugin {
@Inject
FileApiConfiguration fileApiConfiguration;
FileConfiguration fileConfiguration;
@Inject
@Named("file/thumbnail")
@@ -37,7 +37,7 @@ public class AdventThumbnailPathPlugin extends PathAccessor implements PathPlugi
Optional<java.nio.file.Path> thumbnailAbsolutePath = getDefaultThumbnailPath(path);
if (thumbnailAbsolutePath.isPresent()) {
java.nio.file.Path rootFolderPath = Paths.get(this.fileApiConfiguration.directory());
java.nio.file.Path rootFolderPath = Paths.get(this.fileConfiguration.directory());
return Optional.of(
"/" + rootFolderPath.resolve("file").relativize(thumbnailAbsolutePath.get())
.toString());

View File

@@ -1,28 +1,21 @@
package sh.rhiobet.lalafin.core.path.model;
import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Inject;
import jakarta.ws.rs.core.PathSegment;
import java.net.URLDecoder;
import java.nio.charset.StandardCharsets;
import java.nio.file.Paths;
import java.util.List;
import sh.rhiobet.lalafin.api.configuration.FileApiConfiguration;
import sh.rhiobet.lalafin.core.path.exception.InvalidPathException;
@ApplicationScoped
public class PathFactory {
@Inject
FileApiConfiguration fileApiConfiguration;
public Path toPath(List<PathSegment> names) throws InvalidPathException {
public Path toPath(List<PathSegment> names, java.nio.file.Path rootFolderPath)
throws InvalidPathException {
if (hasEncodedPathSeparator(names)) {
throw new InvalidPathException("Some path segments contain illegal characters.");
} else {
java.nio.file.Path rootFolderPath = Paths.get(this.fileApiConfiguration.directory());
int zipIndex = -1;
for (int i = 0; i < names.size(); i++) {
if (names.get(i).getPath().endsWith(".zip")) {

View File

@@ -9,7 +9,6 @@ import sh.rhiobet.lalafin.LalafinConfiguration;
import sh.rhiobet.lalafin.api.internal.redis.FileTokenProvider;
import sh.rhiobet.lalafin.core.path.model.Path;
import sh.rhiobet.lalafin.core.path.plugin.PathPlugin;
import sh.rhiobet.lalafin.file.ThumbnailService;
import sh.rhiobet.lalafin.file.configuration.FileConfiguration;
@ApplicationScoped
@@ -20,9 +19,6 @@ public class FileMetadataService {
@Inject
FileConfiguration fileConfiguration;
@Inject
ThumbnailService thumbnailService;
@Inject
@Named("file/thumbnail")
PathPlugin thumbnailPathPlugin;

View File

@@ -1,5 +1,6 @@
package sh.rhiobet.lalafin.file.rest;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.List;
@@ -15,12 +16,16 @@ import io.quarkus.security.Authenticated;
import sh.rhiobet.lalafin.core.access.AccessService;
import sh.rhiobet.lalafin.core.path.exception.InvalidPathException;
import sh.rhiobet.lalafin.core.path.model.PathFactory;
import sh.rhiobet.lalafin.file.configuration.FileConfiguration;
import sh.rhiobet.lalafin.file.model.FileInfoBase;
import sh.rhiobet.lalafin.file.model.FileMetadataService;
@Authenticated
@Path("/v1/api/private/file")
public class FilePrivateAPI {
@Inject
FileConfiguration fileConfiguration;
@Inject
FileMetadataService fileMetadataService;
@@ -41,9 +46,11 @@ public class FilePrivateAPI {
@Path("/{names: .+}")
@Produces(MediaType.APPLICATION_JSON)
public Response getFileInfo(List<PathSegment> names) {
java.nio.file.Path rootFolderPath = Paths.get(this.fileConfiguration.directory());
sh.rhiobet.lalafin.core.path.model.Path path;
try {
path = this.pathFactory.toPath(names);
path = this.pathFactory.toPath(names, rootFolderPath);
} catch (InvalidPathException ignored) {
return Response.status(Response.Status.BAD_REQUEST).build();
}