package controllers import ( "context" "git.golem15.com/golem15/summercms/modules/backpack" "git.golem15.com/golem15/summercms/modules/cabana" "git.golem15.com/golem15/summercms/modules/cooler" ) // purgeSiteCache registers one site-cache purge of kind and slug, sent by // the framework's purger (site_cache.purge_url and purge_token) after the // save transaction of ctx commits. Without a purge configured, or outside a // save transaction, it does nothing. A purge never fails the save. func purgeSiteCache(ctx context.Context, app func() *backpack.App, kind, slug string) { if app == nil { return } a := app() if a == nil { return } tx, ok := cabana.TxFromContext(ctx) if !ok { return } purger := cooler.SiteCacheFromApp(a) if purger == nil { return } cooler.PurgeSiteCacheAfterCommit(ctx, tx, purger, kind, slug) }