check / check (push) Waiting to run
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. One test preloads a webhook with its targets and entrypoints and a target with its webhook, checks the references are filled, and checks the JSON leaves them out; another builds each other model with its parent set and checks the parent's id is absent from its JSON. Model: opus-5-5
22 lines
701 B
Go
22 lines
701 B
Go
package database
|
|
|
|
// Entrypoint represents an inbound URL endpoint that feeds into a webhook
|
|
type Entrypoint struct {
|
|
BaseModel
|
|
|
|
WebhookID string `gorm:"type:uuid;not null" json:"webhookId"`
|
|
|
|
// Path is the URL path for this entrypoint. It is the
|
|
// entrypoint's only credential: possession of the UUID
|
|
// authorises submission, so the receiver checks nothing else
|
|
// about the sender.
|
|
Path string `gorm:"uniqueIndex;not null" json:"path"`
|
|
|
|
Description string `json:"description"`
|
|
Active bool `gorm:"default:true" json:"active"`
|
|
|
|
// Relations. No model marshals the record it belongs to:
|
|
// Webhook.Entrypoints leads back here, and the JSON could loop.
|
|
Webhook Webhook `json:"-"`
|
|
}
|