Keep each model's parent out of its JSON (closes #177)
check / check (push) Successful in 3m20s

Every reference from a model to the record it belongs to is now
json:"-", so the webhook and target models (and the other parent and
child pairs in internal/database) can no longer marshal each other in
a loop. Preloading maps associations without reading json tags, so it
still fills these references; a new test preloads a webhook with its targets and
entrypoints and a target with its webhook, checks the references are
filled, and checks the marshalled JSON leaves them out.

Model: opus-5-5
This commit is contained in:
2026-10-02 11:08:45 +00:00
parent b14b27b78b
commit d453f76fb3
8 changed files with 89 additions and 16 deletions
+3 -2
View File
@@ -66,8 +66,9 @@ type Webhook struct {
// must equal DefaultRetentionDays.
RetentionDays int `gorm:"default:30" json:"retentionDays"`
// Relations
User User `json:"user,omitzero"`
// Relations. No model marshals the record it belongs to:
// User.Webhooks leads back here, and the JSON could loop.
User User `json:"-"`
Entrypoints []Entrypoint `json:"entrypoints,omitempty"`
Targets []Target `json:"targets,omitempty"`
}