9e6bea681f
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.
29 lines
843 B
Go
29 lines
843 B
Go
package infra
|
|
|
|
import "fmt"
|
|
|
|
// MetabaseExecuteQuery ejecuta una query ad-hoc (sin guardar como card) en Metabase.
|
|
// databaseID: ID de la base de datos en Metabase.
|
|
// sql: query SQL a ejecutar.
|
|
// maxResults: limite de filas (0 = default 2000 de Metabase).
|
|
func MetabaseExecuteQuery(client MetabaseClient, databaseID int, sql string, maxResults int) (map[string]any, error) {
|
|
body := map[string]any{
|
|
"database": databaseID,
|
|
"type": "native",
|
|
"native": map[string]any{"query": sql},
|
|
}
|
|
if maxResults > 0 {
|
|
body["constraints"] = map[string]any{
|
|
"max-results": maxResults,
|
|
"max-results-bare-rows": maxResults,
|
|
}
|
|
}
|
|
|
|
result, err := metabaseRequest("POST", client.BaseURL, client.Token, "/api/dataset", body)
|
|
if err != nil {
|
|
return nil, fmt.Errorf("metabase execute query: %w", err)
|
|
}
|
|
|
|
return result, nil
|
|
}
|