feat: funciones Go para API Metabase y tipo MetabaseClient

Añade funciones Go stub para la API de Metabase en dominio infra:
auth, CRUD de cards, dashboards y users, execute_query y execute_card.
Incluye tipo MetabaseClient y helper HTTP compartido.
Todas las funciones son impuras con stubs not-implemented.
This commit is contained in:
2026-03-28 20:32:24 +01:00
parent 49eecd0c87
commit 9e6bea681f
40 changed files with 1640 additions and 0 deletions
@@ -0,0 +1,23 @@
package infra
import "fmt"
// MetabaseUpdateDashboard actualiza un dashboard en Metabase.
// fields puede incluir metadata del dashboard Y/O la lista completa de dashcards y tabs.
//
// Para gestionar cards en el dashboard, incluir "dashcards" en fields:
// - Agregar card: incluirla con ID negativo (ej: -1, -2)
// - Actualizar card: incluirla con su ID positivo existente
// - Eliminar card: omitirla del array (el array es el estado deseado completo)
//
// Campos comunes: name, description, archived, parameters, dashcards, tabs, collection_id.
func MetabaseUpdateDashboard(client MetabaseClient, dashboardID int, fields map[string]any) (map[string]any, error) {
path := fmt.Sprintf("/api/dashboard/%d", dashboardID)
result, err := metabaseRequest("PUT", client.BaseURL, client.Token, path, fields)
if err != nil {
return nil, fmt.Errorf("metabase update dashboard %d: %w", dashboardID, err)
}
return result, nil
}