github.com/turbot/steampipe@v1.7.0-rc.0.0.20240517123944-7cef272d4458/pkg/dashboard/dashboardtypes/leaf_data.go (about)

     1  package dashboardtypes
     2  
     3  import (
     4  	"github.com/turbot/steampipe/pkg/query/queryresult"
     5  )
     6  
     7  type LeafData struct {
     8  	Columns []*queryresult.ColumnDef `json:"columns"`
     9  	Rows    []map[string]interface{} `json:"rows"`
    10  }
    11  
    12  func NewLeafData(result *queryresult.SyncQueryResult) *LeafData {
    13  	leafData := &LeafData{
    14  		Rows:    make([]map[string]interface{}, len(result.Rows)),
    15  		Columns: result.Cols,
    16  	}
    17  
    18  	for rowIdx, row := range result.Rows {
    19  		rowData := make(map[string]interface{}, len(result.Cols))
    20  		for i, data := range row.(*queryresult.RowResult).Data {
    21  			columnName := leafData.Columns[i].Name
    22  			rowData[columnName] = data
    23  		}
    24  
    25  		leafData.Rows[rowIdx] = rowData
    26  	}
    27  	return leafData
    28  }