Files
sm-journal-plugin/classes/site_cache.go
Jakub Zych d7943fb3f1 feat(19.3-04): Journal purges through the framework's cooler.SiteCachePurger
- classes.SiteCachePurger, NewSiteCachePurger, PurgeSiteCacheAfterCommit and
  the key and limit constants stay as deprecated aliases for one release
- wireSiteCache: framework keys site_cache.* win (Journal keys ignored with
  a warning); with only golem15.journal.site_cache.* set it publishes the
  purger from them with a deprecation warning, so menu and FAQ saves purge
  through it too
- controllers take the purger from cooler.SiteCacheFromApp
- TestSiteCacheFrameworkKeysWin; README documents both key sets
2026-10-15 18:34:27 +02:00

61 lines
2.4 KiB
Go

package classes
import (
"context"
"git.golem15.com/golem15/summercms/modules/cooler"
"gorm.io/gorm"
)
// The site-cache purge moved into the framework (cooler.SiteCachePurger,
// configured by site_cache.purge_url and site_cache.purge_token). The names
// below stay for one release as aliases, so existing deployments and
// importers keep working.
const (
// SiteCachePurgeURLKey is the Journal's old config key of the host
// site's cache purge URL (env SUMMER_GOLEM15__JOURNAL__SITE_CACHE__PURGE_URL).
// It is read only when the framework keys are unset.
//
// Deprecated: set cooler.SiteCachePurgeURLKey (site_cache.purge_url).
SiteCachePurgeURLKey = "golem15.journal.site_cache.purge_url"
// SiteCachePurgeTokenKey is the Journal's old config key of the purge
// bearer token (env SUMMER_GOLEM15__JOURNAL__SITE_CACHE__PURGE_TOKEN). It
// is read only when the framework keys are unset.
//
// Deprecated: set cooler.SiteCachePurgeTokenKey (site_cache.purge_token).
SiteCachePurgeTokenKey = "golem15.journal.site_cache.purge_token"
// SiteCachePurgeTimeout bounds one purge request.
//
// Deprecated: use cooler.SiteCachePurgeTimeout.
SiteCachePurgeTimeout = cooler.SiteCachePurgeTimeout
// SiteCachePurgeMinTokenLength is the shortest purge token accepted.
//
// Deprecated: use cooler.SiteCachePurgeMinTokenLength.
SiteCachePurgeMinTokenLength = cooler.SiteCachePurgeMinTokenLength
)
// SiteCachePurger is the framework's site-cache purger.
//
// Deprecated: use cooler.SiteCachePurger.
type SiteCachePurger = cooler.SiteCachePurger
// NewSiteCachePurger returns the purger for purgeURL and token read from the
// Journal's old keys, whose names its errors carry; the rules are those of
// cooler.NewSiteCachePurgerFor. With both empty it returns nil, nil.
//
// Deprecated: configure site_cache.purge_url and site_cache.purge_token and
// use cooler.SiteCacheFromApp.
func NewSiteCachePurger(purgeURL, token string) (*SiteCachePurger, error) {
return cooler.NewSiteCachePurgerFor(SiteCachePurgeURLKey, SiteCachePurgeTokenKey, purgeURL, token)
}
// PurgeSiteCacheAfterCommit registers p.Purge(kind, slug) to run after the
// transaction db belongs to commits. A nil p does nothing.
//
// Deprecated: use cooler.PurgeSiteCacheAfterCommit.
func PurgeSiteCacheAfterCommit(ctx context.Context, db *gorm.DB, p *SiteCachePurger, kind, slug string) {
cooler.PurgeSiteCacheAfterCommit(ctx, db, p, kind, slug)
}