Skip to main content

Documentation Index

Fetch the complete documentation index at: https://wiki.vivla.com/llms.txt

Use this file to discover all available pages before exploring further.

Cloudinary

Modulo de gestion de imagenes que proporciona upload, almacenamiento, transformacion y eliminacion via Cloudinary SDK.

Configuracion

Variable de entornoRequeridaDescripcion
CLOUDINARY_CLOUD_NAMESiNombre del cloud
CLOUDINARY_API_KEYSiAPI key
CLOUDINARY_API_SECRETSiAPI secret

Servicio

CloudinaryService expone los siguientes metodos:

Upload

MetodoDescripcion
uploadImage(file, folder, publicId?)Upload de buffer a carpeta especifica
uploadFromUrl(url, folder, publicId?)Download + upload desde URL (crop 200x200 para avatars)
generateSignedUploadUrl(folder)URL firmada para upload desde cliente

Consulta

MetodoDescripcion
getOptimizedUrl(publicId, transformation?)URL optimizada con transformaciones
getImageDetails(publicId)Metadata de imagen

Eliminacion

MetodoDescripcion
deleteImage(publicId)Eliminar imagen
deleteMultipleImages(publicIds)Eliminacion en lote

Uso por otros modulos

ModuloUsoEndpoint
SurveysUpload de imagenes para definiciones de encuestasPOST /surveys/upload-image (max 5MB)
PermissionsUpload de imagenes para modulos y gruposVia FileInterceptor
Chat UsersAvatars de usuario (crop 200x200, face-focused)Sync desde Firebase

Transformaciones

Las transformaciones se aplican via URL parameters:
interface CloudinaryTransformation {
  width?: number
  height?: number
  crop?: string       // 'fill', 'fit', 'thumb', etc.
  gravity?: string    // 'face', 'center', 'auto'
  quality?: string    // 'auto', number
  format?: string     // 'webp', 'jpg', 'png'
}

Estructura de modulo

apps/backend/src/shared/cloudinary/
  cloudinary.module.ts    # Standard module (not global)
  cloudinary.service.ts   # Cloudinary SDK wrapper