UploadHelper.java
/*
* Copyright (C) 2024 B3Partners B.V.
*
* SPDX-License-Identifier: MIT
*/
package org.tailormap.api.persistence.helper;
import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.linkTo;
import java.util.UUID;
import org.springframework.stereotype.Service;
import org.tailormap.api.controller.UploadsController;
import org.tailormap.api.repository.UploadRepository;
@Service
public class UploadHelper {
private final UploadRepository uploadRepository;
public UploadHelper(UploadRepository uploadRepository) {
this.uploadRepository = uploadRepository;
}
public String getUrlForImage(String imageId, String category) {
if (imageId == null) {
return null;
}
try {
UUID uuid = UUID.fromString(imageId);
return getUrlForImage(uuid, category);
} catch (IllegalArgumentException e) {
// Illegal UUID, return null
return null;
}
}
public String getUrlForImage(UUID imageId, String category) {
if (imageId == null) {
return null;
}
return uploadRepository
.findByIdAndCategory(imageId, category)
.map(upload -> linkTo(UploadsController.class)
.slash("api")
.slash("uploads")
.slash(category)
.slash(imageId.toString())
.slash(upload.getFilename())
.toString())
.orElse(null);
}
}