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.
38 lines
966 B
Go
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
|
|
}
|