import { cloudinary } from "./cloudinaryConfig.js";
/**
* Sube una imagen a Cloudinary y devuelve la URL segura de la imagen.
*
* @async
* @function uploadImage
* @param {string} imagePath - Ruta local o URL de la imagen que se desea subir.
* @returns {Promise<string|null>} URL segura de la imagen subida o `null` si ocurre un error.
* @throws {Error} Registra el error en la consola si la subida falla.
*
* @example
* import { uploadImage } from './uploadImageToCloudinary.js';
*
* const imageUrl = await uploadImage('./images/avatar.jpg');
* console.log(imageUrl); // https://res.cloudinary.com/<cloud_name>/users/avatar.jpg
*/
export async function uploadImage(imagePath) {
const options = {
use_filename: true, // Utiliza el nombre original del archivo.
unique_filename: false, // No genera un nombre único automáticamente.
overwrite: true, // Sobrescribe el archivo existente con el mismo nombre.
folder: "users", // Almacena las imágenes en la carpeta "users".
};
try {
const result = await cloudinary.uploader.upload(imagePath, options);
return result.secure_url;
} catch (error) {
console.error(error);
return null; // Retorna null en caso de error.
}
}