This commit is contained in:
Lizandro Guarnizo
2026-06-03 21:32:50 -05:00
parent f087fd46f1
commit c05a2a8137
10 changed files with 453 additions and 175 deletions
+25 -4
View File
@@ -12,6 +12,18 @@ import (
"github.com/sujit-baniya/fiber-boilerplate/pkg/services"
)
// helper: obtiene el provider OSS por ID o el activo por defecto
func getOSSProvider(c *fiber.Ctx) (services.OSSProvider, error) {
idStr := c.Query("oss_api_id", "")
if idStr != "" {
id, err := strconv.ParseUint(idStr, 10, 32)
if err == nil && id > 0 {
return services.NewOSSProviderByID(uint(id))
}
}
return services.NewOSSProviderFromDB()
}
// OssApiIndex renderiza la vista del panel de gestión de Alibaba Cloud OSS.
func OssApiIndex(c *fiber.Ctx) error {
data := fiber.Map{
@@ -143,6 +155,15 @@ func UpdateOssApiConfig(c *fiber.Ctx) error {
return c.JSON(fiber.Map{"ok": true, "item": existing})
}
// GetActiveOssApiList devuelve todas las configuraciones activas (para selectores UI).
func GetActiveOssApiList(c *fiber.Ctx) error {
items, err := models.GetActiveOssApis()
if err != nil {
return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{"error": err.Error()})
}
return c.JSON(fiber.Map{"data": items})
}
// DeleteOssApiConfig elimina una configuración de Alibaba Cloud OSS.
func DeleteOssApiConfig(c *fiber.Ctx) error {
id, err := strconv.ParseUint(c.Params("id"), 10, 64)
@@ -166,7 +187,7 @@ func DeleteOssApiConfig(c *fiber.Ctx) error {
// OssBrowserList lista los objetos del bucket activo con soporte de carpetas virtuales.
// Query params: prefix (carpeta actual), marker (paginación), max_keys
func OssBrowserList(c *fiber.Ctx) error {
svc, err := services.NewOSSServiceFromDB()
svc, err := getOSSProvider(c)
if err != nil {
return c.Status(fiber.StatusServiceUnavailable).JSON(fiber.Map{"error": "Sin configuración OSS activa: " + err.Error()})
}
@@ -190,7 +211,7 @@ func OssBrowserSignedURL(c *fiber.Ctx) error {
return c.Status(fiber.StatusBadRequest).JSON(fiber.Map{"error": "key es requerido"})
}
svc, err := services.NewOSSServiceFromDB()
svc, err := getOSSProvider(c)
if err != nil {
return c.Status(fiber.StatusServiceUnavailable).JSON(fiber.Map{"error": "Sin configuración OSS activa: " + err.Error()})
}
@@ -213,7 +234,7 @@ func OssBrowserDelete(c *fiber.Ctx) error {
return c.Status(fiber.StatusBadRequest).JSON(fiber.Map{"error": "key es requerido"})
}
svc, err := services.NewOSSServiceFromDB()
svc, err := getOSSProvider(c)
if err != nil {
return c.Status(fiber.StatusServiceUnavailable).JSON(fiber.Map{"error": "Sin configuración OSS activa: " + err.Error()})
}
@@ -249,7 +270,7 @@ func OssBrowserUpload(c *fiber.Ctx) error {
ct = "application/octet-stream"
}
svc, err := services.NewOSSServiceFromDB()
svc, err := getOSSProvider(c)
if err != nil {
return c.Status(fiber.StatusServiceUnavailable).JSON(fiber.Map{"error": "Sin configuración OSS activa: " + err.Error()})
}