feat(recipe/application): implementado servicio para subir la imagen de la receta

parent 05457b5a
package com.example.apprecetas.recipe.application;
import org.springframework.web.multipart.MultipartFile;
public interface FileUploadUseCase {
String uploadFile(MultipartFile file);
}
package com.example.apprecetas.recipe.application.impl;
import com.cloudinary.Cloudinary;
import com.cloudinary.utils.ObjectUtils;
import com.example.apprecetas.recipe.application.FileUploadUseCase;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
import java.util.Map;
@Service
public class FileUploadUseCaseImpl implements FileUploadUseCase {
private final Cloudinary cloudinary;
public FileUploadUseCaseImpl(
@Value("${cloudinary.cloud-name}") String cloudName,
@Value("${cloudinary.api-key}") String apiKey,
@Value("${cloudinary.api-secret}") String apiSecret) {
this.cloudinary = new Cloudinary(ObjectUtils.asMap(
"cloud_name", cloudName,
"api_key", apiKey,
"api_secret", apiSecret,
"secure", true));
}
@Override
public String uploadFile(MultipartFile file) {
try {
Map uploadResult = cloudinary.uploader().upload(file.getBytes(), ObjectUtils.emptyMap());
return (String) uploadResult.get("url");
} catch (IOException e) {
throw new RuntimeException("Error al subir el archivo a Cloudinary", e);
}
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment