diff options
| author | historia <[not public]> | 2026-10-06 12:57:23 -0400 |
|---|---|---|
| committer | historia <[not public]> | 2026-10-06 12:57:23 -0400 |
| commit | 9666676766bf21364f4fc4d0d1d336e72f2a91b4 (patch) | |
| tree | 0cade34091d7602790dc38cd44053f0b74bbadf2 /internal/admin/api_triggers.go | |
| parent | 4bc1daaf259e0c19c5fe4a12ec8bc7f6e5a735c1 (diff) | |
| download | thehouseoficarus-9666676766bf21364f4fc4d0d1d336e72f2a91b4.tar.gz | |
refactor: split casino.go, dedup helpers, remove audit docs
Diffstat (limited to 'internal/admin/api_triggers.go')
| -rw-r--r-- | internal/admin/api_triggers.go | 19 |
1 files changed, 11 insertions, 8 deletions
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() {} |
