Files
asteam 6f40af6a5f 1.0.0
2024-07-25 14:33:38 +03:00

39 lines
986 B
Go

package flattens
import (
"context"
"fmt"
"strconv"
"github.com/hashicorp/terraform-plugin-framework/types"
"github.com/hashicorp/terraform-plugin-log/tflog"
)
// Meta flattens []interface{} golang struct to a list of terraform framework types.StringType
func Meta(ctx context.Context, m []interface{}) types.List {
tflog.Info(ctx, "Start flattenMeta")
tempSlice := make([]string, 0, len(m))
for _, item := range m {
switch d := item.(type) {
case string:
tempSlice = append(tempSlice, d)
case int:
tempSlice = append(tempSlice, strconv.Itoa(d))
case int64:
tempSlice = append(tempSlice, strconv.FormatInt(d, 10))
case float64:
tempSlice = append(tempSlice, strconv.FormatInt(int64(d), 10))
default:
tempSlice = append(tempSlice, "")
}
}
res, diags := types.ListValueFrom(ctx, types.StringType, tempSlice)
if diags.HasError() {
tflog.Error(ctx, fmt.Sprint("Error flattenMeta:", diags))
}
tflog.Info(ctx, "End flattenMeta")
return res
}