Small fixes
This commit is contained in:
@@ -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());
|
||||
|
||||
@@ -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")) {
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user