Documentation
¶
Index ¶
- Variables
- func FuncMap(pageRepo repository.Page, menu cms.Menu, matcher cms.Matcher) theme.FuncMap
- func HybridPageMiddleware(pageHandler cms.PageHandler, cfgRepository repository.Configuration) echox.Middleware
- func NewAdminAPI(r repository.Admin) v1.Admin
- func NewAdminRepository(db *sql.DB) repository.Admin
- func NewAuthAPI(cache cms.Cache, r repository.Admin, cfg JWTConfig, logger *zap.Logger) v1.Auth
- func NewConfigurationAPI(r repository.Configuration) v1.Configuration
- func NewConfigurationRepository(db *sql.DB, c cms.Cache) repository.Configuration
- func NewMenuAPI(r repository.Menu) v1.Menu
- func NewMenuRepository(db *sql.DB, c cms.Cache) repository.Menu
- func NewNodeAPI(r repository.Node) v1.Node
- func NewNodeRepository(db *sql.DB, c cms.Cache) repository.Node
- func NewPageAPI(r repository.Page, cfg repository.Configuration) v1.Page
- func NewPageRepository(db *sql.DB, c cms.Cache) repository.Page
- func NewSessionStore(cfg SessionStoreConfig, lc fx.Lifecycle, db *sql.DB) scs.Store
- func NewSiteAPI(r repository.Site) v1.Site
- func NewSiteRepository(db *sql.DB, c cms.Cache) repository.Site
- func NewTemplateAPI(r repository.Template) v1.Template
- func NewTemplateRepository(params TemplateRepositoryParams) repository.Template
- func NewThemeRepository(r repository.Template) theme.Repository
- func PageSelectorMiddleware(params PageSelectorParams) echox.Middleware
- func SeederBoot(seeder cms.Seeder, lc fx.Lifecycle)
- func SiteSelectorMiddleware(siteSelector cms.SiteSelector, cfgRepository repository.Configuration) echox.Middleware
- type JWTConfig
- type PageSelectorParams
- type SessionStoreConfig
- type TemplateRepositoryParams
- type ThemeRepository
Constants ¶
This section is empty.
Variables ¶
View Source
var ( OptionConfigurationRepository = fx.Provide( fx.Annotate( NewConfigurationRepository, fx.ParamTags("", `name:"repository-cache"`), ), ) OptionSiteRepository = fx.Provide( fx.Annotate( NewSiteRepository, fx.ParamTags("", `name:"repository-cache"`), ), ) OptionPageRepository = fx.Provide( fx.Annotate( NewPageRepository, fx.ParamTags("", `name:"repository-cache"`), ), ) OptionMenuRepository = fx.Provide( fx.Annotate( NewMenuRepository, fx.ParamTags("", `name:"repository-cache"`), ), ) OptionNodeRepository = fx.Provide( fx.Annotate( NewNodeRepository, fx.ParamTags("", `name:"repository-cache"`), ), ) OptionAdminRepository = fx.Provide(NewAdminRepository) OptionTemplateRepository = fx.Provide(NewTemplateRepository) OptionThemeRepository = fx.Provide(NewThemeRepository) OptionSessionStore = fx.Provide(NewSessionStore) OptionSeeder = fx.Provide(fx.Annotate(cms.NewDefaultSeeder, fx.As(new(cms.Seeder)))) OptionMenu = fx.Provide(fx.Annotate(cms.NewDefaultMenu, fx.As(new(cms.Menu)))) OptionMatcher = fx.Provide( fx.Annotate( cms.NewDefaultMatcher, fx.As(new(cms.Matcher)), fx.ParamTags(`group:"menu-voter"`), ), ) OptionURLVoter = fx.Provide( fx.Annotate( cms.NewURLVoter, fx.As(new(cms.Voter)), fx.ResultTags(`group:"menu-voter"`), ), ) OptionSiteSelector = fx.Provide( fx.Annotate( cms.NewDefaultSiteSelector, fx.As(new(cms.SiteSelector)), ), ) OptionPageHandler = fx.Provide( fx.Annotate( cms.NewDefaultPageHandler, fx.As(new(cms.PageHandler)), ), ) OptionPageCreateHandler = fx.Provide(cms.NewPageCreateHandler) OptionErrorHandler = fx.Provide(cms.NewErrorHandler) OptionHTTPErrorHandler = fx.Provide(func(h *cms.ErrorHandler) echo.HTTPErrorHandler { return h.Handle }) OptionErrorResolver = fx.Provide(cms.ErrorResolver) OptionRenderer = fx.Provide(fx.Annotate(cms.NewRenderer, fx.As(new(echo.Renderer)))) OptionThemeFuncMap = fx.Provide(fx.Annotate(FuncMap, fx.ResultTags(`group:"theme-func-map"`))) OptionThemeLoader = fx.Provide(fx.Annotate(theme.NewRepositoryLoader, fx.As(new(theme.Loader)))) OptionBasicAuthValidator = fx.Provide(cms.BasicAuthValidator) OptionJWTAuthValidator = fx.Provide(func(repo repository.Admin, cfg JWTConfig) middleware.KeyAuthValidator { return cms.JWTAuthValidator(repo, cfg.Secret) }) OptionSiteSelectorMiddleware = fx.Provide(echox.AsMiddleware(SiteSelectorMiddleware)) OptionPageSelectorMiddleware = fx.Provide(echox.AsMiddleware(PageSelectorMiddleware)) OptionHybridPageMiddleware = fx.Provide(echox.AsMiddleware(HybridPageMiddleware)) OptionAdminAuthAPI = fx.Provide( fx.Annotate( NewAuthAPI, fx.As(new(echox.APIHandler)), fx.ParamTags(`name:"admin-auth-cache"`), fx.ResultTags(`group:"api-handler"`), ), ) OptionAdminAPI = fx.Provide(echox.AsAPIHandler(NewAdminAPI)) OptionConfigurationAPI = fx.Provide(echox.AsAPIHandler(NewConfigurationAPI)) OptionSiteAPI = fx.Provide(echox.AsAPIHandler(NewSiteAPI)) OptionPageAPI = fx.Provide(echox.AsAPIHandler(NewPageAPI)) OptionTemplateAPI = fx.Provide(echox.AsAPIHandler(NewTemplateAPI)) OptionMenuAPI = fx.Provide(echox.AsAPIHandler(NewMenuAPI)) OptionNodeAPI = fx.Provide(echox.AsAPIHandler(NewNodeAPI)) )
Functions ¶
func HybridPageMiddleware ¶
func HybridPageMiddleware(pageHandler cms.PageHandler, cfgRepository repository.Configuration) echox.Middleware
func NewAdminAPI ¶
func NewAdminAPI(r repository.Admin) v1.Admin
func NewAdminRepository ¶
func NewAdminRepository(db *sql.DB) repository.Admin
func NewAuthAPI ¶
func NewConfigurationAPI ¶
func NewConfigurationAPI(r repository.Configuration) v1.Configuration
func NewConfigurationRepository ¶
func NewConfigurationRepository(db *sql.DB, c cms.Cache) repository.Configuration
func NewMenuAPI ¶
func NewMenuAPI(r repository.Menu) v1.Menu
func NewMenuRepository ¶
func NewNodeAPI ¶
func NewNodeAPI(r repository.Node) v1.Node
func NewNodeRepository ¶
func NewPageAPI ¶
func NewPageAPI(r repository.Page, cfg repository.Configuration) v1.Page
func NewPageRepository ¶
func NewSessionStore ¶
func NewSessionStore(cfg SessionStoreConfig, lc fx.Lifecycle, db *sql.DB) scs.Store
func NewSiteAPI ¶
func NewSiteAPI(r repository.Site) v1.Site
func NewSiteRepository ¶
func NewTemplateAPI ¶
func NewTemplateAPI(r repository.Template) v1.Template
func NewTemplateRepository ¶
func NewTemplateRepository(params TemplateRepositoryParams) repository.Template
func NewThemeRepository ¶
func NewThemeRepository(r repository.Template) theme.Repository
func PageSelectorMiddleware ¶
func PageSelectorMiddleware(params PageSelectorParams) echox.Middleware
func SiteSelectorMiddleware ¶
func SiteSelectorMiddleware(siteSelector cms.SiteSelector, cfgRepository repository.Configuration) echox.Middleware
Types ¶
type JWTConfig ¶
type JWTConfig struct {
Secret string `json:"secret,omitempty" yaml:"secret,omitempty"`
AccessTokenDuration time.Duration `json:"accessTokenDuration,omitempty" yaml:"accessTokenDuration,omitempty"`
RefreshTokenDuration time.Duration `json:"refreshTokenDuration,omitempty" yaml:"refreshTokenDuration,omitempty"`
}
func (*JWTConfig) InitDefaults ¶
func (cfg *JWTConfig) InitDefaults()
type PageSelectorParams ¶
type PageSelectorParams struct {
fx.In
PageHandler cms.PageHandler
CfgRepository repository.Configuration
PageRepository repository.Page
}
type SessionStoreConfig ¶
type SessionStoreConfig struct {
CleanupInterval time.Duration `json:"cleanupInterval,omitempty" yaml:"cleanupInterval,omitempty"`
}
func (*SessionStoreConfig) InitDefaults ¶
func (cfg *SessionStoreConfig) InitDefaults()
type ThemeRepository ¶
type ThemeRepository struct {
// contains filtered or unexported fields
}
func (ThemeRepository) FindByName ¶
Click to show internal directories.
Click to hide internal directories.