Files
sm-journal-plugin/search.go
Jakub Zych ffa2c8ffb1 feat: console help, examples and named loggers (SummerCMS v0.4.0)
Every command gets long help and examples, descriptions in imperative
sentence case, and a warn-only TestCommandsDocumented over bonfire.CheckDocs.
The plugin logs through a diary component logger instead of the process
default logger. Requires SummerCMS v0.4.0; command names and flags unchanged.
2026-10-21 17:33:14 +02:00

38 lines
966 B
Go

package journal
import (
"context"
"git.golem15.com/golem15/sm-journal-plugin/models"
"git.golem15.com/golem15/summercms/modules/backpack"
"git.golem15.com/golem15/summercms/modules/beachcomber"
_ "git.golem15.com/golem15/summercms/modules/beachcomber/typesense"
"gorm.io/gorm"
)
func (p *Plugin) wireSearch(app *backpack.App) error {
svc, err := beachcomber.From(app)
if err != nil {
return err
}
svc.SetGate(beachcomber.GateFunc(func(ctx context.Context, db *gorm.DB) bool {
on := settingsSearchEnabled(ctx, db)
models.SetSearchGate(on)
return on
}))
return nil
}
func settingsSearchEnabled(ctx context.Context, db *gorm.DB) bool {
if db == nil {
return false
}
var on bool
err := db.WithContext(ctx).Raw(`SELECT search_use_typesense FROM golem15_journal_settings WHERE id = 1`).Scan(&on).Error
if err != nil {
pluginLog.Warn("journal: search_use_typesense read failed; treating as off", "err", err)
return false
}
return on
}