internal/utils/diag.go (86 lines of code) (raw):

package utils import ( "fmt" "io" "net/http" "github.com/elastic/go-elasticsearch/v8/esapi" fwdiag "github.com/hashicorp/terraform-plugin-framework/diag" sdkdiag "github.com/hashicorp/terraform-plugin-sdk/v2/diag" ) func ConvertSDKDiagnosticsToFramework(sdkDiags sdkdiag.Diagnostics) fwdiag.Diagnostics { var fwDiags fwdiag.Diagnostics for _, sdkDiag := range sdkDiags { if sdkDiag.Severity == sdkdiag.Error { fwDiags.AddError(sdkDiag.Summary, sdkDiag.Detail) } else { fwDiags.AddWarning(sdkDiag.Summary, sdkDiag.Detail) } } return fwDiags } func CheckError(res *esapi.Response, errMsg string) sdkdiag.Diagnostics { var diags sdkdiag.Diagnostics if res.IsError() { body, err := io.ReadAll(res.Body) if err != nil { return sdkdiag.FromErr(err) } diags = append(diags, sdkdiag.Diagnostic{ Severity: sdkdiag.Error, Summary: errMsg, Detail: fmt.Sprintf("Failed with: %s", body), }) return diags } return diags } func CheckHttpError(res *http.Response, errMsg string) sdkdiag.Diagnostics { var diags sdkdiag.Diagnostics if res.StatusCode >= 400 { body, err := io.ReadAll(res.Body) if err != nil { return sdkdiag.FromErr(err) } diags = append(diags, sdkdiag.Diagnostic{ Severity: sdkdiag.Error, Summary: errMsg, Detail: fmt.Sprintf("Failed with: %s", body), }) return diags } return diags } func CheckHttpErrorFromFW(res *http.Response, errMsg string) fwdiag.Diagnostics { var diags fwdiag.Diagnostics if res.StatusCode >= 400 { body, err := io.ReadAll(res.Body) if err != nil { diags.AddError(errMsg, err.Error()) return diags } diags.AddError(errMsg, fmt.Sprintf("Failed with: %s", body)) return diags } return diags } func FrameworkDiagsFromSDK(sdkDiags sdkdiag.Diagnostics) fwdiag.Diagnostics { var diags fwdiag.Diagnostics for _, sdkDiag := range sdkDiags { var fwDiag fwdiag.Diagnostic if sdkDiag.Severity == sdkdiag.Error { fwDiag = fwdiag.NewErrorDiagnostic(sdkDiag.Summary, sdkDiag.Detail) } else { fwDiag = fwdiag.NewWarningDiagnostic(sdkDiag.Summary, sdkDiag.Detail) } diags.Append(fwDiag) } return diags } func FrameworkDiagFromError(err error) fwdiag.Diagnostics { if err == nil { return nil } return fwdiag.Diagnostics{ fwdiag.NewErrorDiagnostic(err.Error(), ""), } }