From 0b0b25222b3131ada79ff78c28eb8bf07d977deb Mon Sep 17 00:00:00 2001 From: historia <[not public]> Date: Tue, 15 Sep 2026 15:35:52 -0400 Subject: feat: single-owner game state, transactional lifecycle, durable money on server stop --- internal/admin/api_helpers.go | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) (limited to 'internal/admin/api_helpers.go') 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 } -- cgit v1.2.3