From 9666676766bf21364f4fc4d0d1d336e72f2a91b4 Mon Sep 17 00:00:00 2001 From: historia <[not public]> Date: Tue, 6 Oct 2026 12:57:23 -0400 Subject: refactor: split casino.go, dedup helpers, remove audit docs --- internal/admin/api_triggers.go | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) (limited to 'internal/admin/api_triggers.go') diff --git a/internal/admin/api_triggers.go b/internal/admin/api_triggers.go index ff3e7d6..b392317 100644 --- a/internal/admin/api_triggers.go +++ b/internal/admin/api_triggers.go @@ -120,6 +120,7 @@ func (s *AdminServer) handleTriggerByID(w http.ResponseWriter, r *http.Request) delete(body, "id") delete(body, "_path") delete(body, "_raw") + delete(body, "_kind") oldPath, oldDir, findErr := findTriggerFile(s.dataDir, id) newKind := triggerKind(body) @@ -131,10 +132,10 @@ func (s *AdminServer) handleTriggerByID(w http.ResponseWriter, r *http.Request) oldContent = existing } - // If the kind changed, ensure the target directory exists and delete - // the old path after writing the new one. - if findErr == nil && newSubdir != oldDir { - os.MkdirAll(filepath.Dir(newPath), 0755) + // Ensure the target subdirectory exists even for PUT-as-create. + if err := os.MkdirAll(filepath.Dir(newPath), 0755); err != nil { + failJSON(w, "mkdir error: "+err.Error()) + return } triggerData, err := triggerMapToYAML(body) @@ -170,7 +171,6 @@ func (s *AdminServer) handleTriggerByID(w http.ResponseWriter, r *http.Request) desc.NewFilePath = newPath } s.undoStack.Push(desc) - s.rebuildTriggerIndex() writeJSON(w, map[string]any{"ok": true, "id": id, "kind": newKind}) case http.MethodDelete: @@ -196,7 +196,6 @@ func (s *AdminServer) handleTriggerByID(w http.ResponseWriter, r *http.Request) // new-content image over the file. IsDelete: true, }) - s.rebuildTriggerIndex() writeJSON(w, map[string]any{"ok": true}) default: @@ -285,6 +284,12 @@ func triggerMapToYAML(m map[string]any) ([]byte, error) { } // Handle simple fields. + if v, ok := m["item_id"]; ok { + if s, ok := v.(string); ok { + t.ItemID = s + } + delete(m, "item_id") + } if v, ok := m["on_player_flag"]; ok { if s, ok := v.(string); ok { t.OnPlayerFlag = s @@ -311,5 +316,3 @@ func triggerMapToYAML(m map[string]any) ([]byte, error) { } return yamlBytes, nil } - -func (s *AdminServer) rebuildTriggerIndex() {} -- cgit v1.2.3