package handlers import ( "fmt" "github.com/gofiber/fiber/v2" "lmika.dev/lmika/hugo-crm/services/posts" ) type Post struct { Post *posts.Service } func (h *Post) Posts() fiber.Handler { return func(c *fiber.Ctx) error { site := GetSite(c) posts, err := h.Post.ListPostOfSite(c.UserContext(), site) if err != nil { return err } return c.Render("sites/posts", fiber.Map{ "site": site, "posts": posts, }, "layouts/main") } } func (h *Post) Create() fiber.Handler { type Req struct { Body string `json:"body" form:"body"` } return func(c *fiber.Ctx) error { site := GetSite(c) var req Req if err := c.BodyParser(&req); err != nil { return err } _, err := h.Post.Create(c.UserContext(), site, req.Body) if err != nil { return err } return c.Redirect(fmt.Sprintf("/sites/%v/posts", site.ID)) } }