diff options
Diffstat (limited to 'internal/admin/api_helpers.go')
| -rw-r--r-- | internal/admin/api_helpers.go | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/internal/admin/api_helpers.go b/internal/admin/api_helpers.go index 109bca6..3224598 100644 --- a/internal/admin/api_helpers.go +++ b/internal/admin/api_helpers.go @@ -46,16 +46,27 @@ func stringifyMap(v any) any { } func writeMapAsYAML(path string, m map[string]any) ([]byte, error) { + content, err := marshalMapYAML(m) + if err != nil { + return nil, err + } + if err := os.WriteFile(path, content, 0644); err != nil { + return nil, err + } + return content, nil +} + +// marshalMapYAML serializes a generic map without writing: callers that +// only need the after-image (mutation-plan preflight) use this. +func marshalMapYAML(m map[string]any) ([]byte, error) { var buf bytes.Buffer enc := yaml.NewEncoder(&buf) enc.SetIndent(2) if err := enc.Encode(m); err != nil { return nil, err } - enc.Close() - content := buf.Bytes() - if err := os.WriteFile(path, content, 0644); err != nil { + if err := enc.Close(); err != nil { return nil, err } - return content, nil + return buf.Bytes(), nil } |
