owl-blogs/web/editor_list_handler.go

42 lines
890 B
Go

package web
import (
"owl-blogs/app"
"owl-blogs/app/repository"
"owl-blogs/render"
"github.com/gofiber/fiber/v2"
)
type EditorListHandler struct {
configRepo repository.ConfigRepository
registry *app.EntryTypeRegistry
}
type EditorListContext struct {
Types []string
}
func NewEditorListHandler(registry *app.EntryTypeRegistry,
configRepo repository.ConfigRepository) *EditorListHandler {
return &EditorListHandler{
registry: registry,
configRepo: configRepo,
}
}
func (h *EditorListHandler) Handle(c *fiber.Ctx) error {
c.Set(fiber.HeaderContentType, fiber.MIMETextHTML)
types := h.registry.Types()
typeNames := []string{}
for _, t := range types {
name, _ := h.registry.TypeName(t)
typeNames = append(typeNames, name)
}
return render.RenderTemplateWithBase(c, getSiteConfig(h.configRepo), "views/editor_list", &EditorListContext{Types: typeNames})
}