sojorn/_tmp_patch_post_handler.sh
2026-01-30 20:56:57 -06:00

19 lines
1.2 KiB
Bash

#!/usr/bin/env bash
set -euo pipefail
python - <<'PY'
from pathlib import Path
path = Path("/opt/sojorn/go-backend/internal/handlers/post_handler.go")
text = path.read_text()
if "chain_parent_id" not in text:
text = text.replace("\t\tDurationMS *int `json:\"duration_ms\"`\n\t\tIsBeacon", "\t\tDurationMS *int `json:\"duration_ms\"`\n\t\tAllowChain *bool `json:\"allow_chain\"`\n\t\tChainParentID *string `json:\"chain_parent_id\"`\n\t\tIsBeacon")
if "allowChain := !req.IsBeacon" not in text:
marker = "post := &models.Post{\n"
if marker in text:
text = text.replace(marker, "allowChain := !req.IsBeacon\n\tif req.AllowChain != nil {\n\t\tallowChain = *req.AllowChain\n\t}\n\n\t" + marker, 1)
text = text.replace("\t\tAllowChain: !req.IsBeacon,\n", "\t\tAllowChain: allowChain,\n")
marker = "\tif req.CategoryID != nil {\n\t\tcatID, _ := uuid.Parse(*req.CategoryID)\n\t\tpost.CategoryID = &catID\n\t}\n"
if marker in text and "post.ChainParentID" not in text:
text = text.replace(marker, marker + "\n\tif req.ChainParentID != nil && *req.ChainParentID != \"\" {\n\t\tparentID, err := uuid.Parse(*req.ChainParentID)\n\t\tif err == nil {\n\t\t\tpost.ChainParentID = &parentID\n\t\t}\n\t}\n", 1)
path.write_text(text)
PY