- FormAfterCreate/FormAfterUpdate run the locale check, then register a purge of kind faq through cooler.PurgeSiteCacheAfterCommit - new FormAfterDelete purges after the delete commits - purgeSiteCache helper takes the save transaction from cabana.TxFromContext and the purger from cooler.SiteCacheFromApp (site_cache.* keys) - TestFaqAdminPurgesSiteCache on Postgres
33 lines
848 B
Go
33 lines
848 B
Go
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)
|
|
}
|