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:
@@ -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
|
||||
}
|
||||
Reference in New Issue
Block a user