package handlers import ( "fmt" "github.com/gofiber/fiber/v3" "lmika.dev/lmika/weiro/models" "lmika.dev/lmika/weiro/services/sites" ) type SiteSettingsHandler struct { SiteService *sites.Service } func (s *SiteSettingsHandler) General(ctx fiber.Ctx) error { site := ctx.Locals("site").(models.Site) return ctx.Render("sitesettings/general", fiber.Map{ "site": site, "tzones": sites.ListZones(), }) } func (s *SiteSettingsHandler) UpdateGeneral(c fiber.Ctx) error { site := c.Locals("site").(models.Site) var params sites.UpdateSiteSettingsParams if err := c.Bind().Body(¶ms); err != nil { return err } params.SiteID = site.ID if _, err := s.SiteService.UpdateSiteSettings(c.Context(), params); err != nil { return err } return c.Redirect().To(fmt.Sprintf("/sites/%v/settings", +site.ID)) } func (ph PostsHandler) Rebuild(c fiber.Ctx) error { site := c.Locals("site").(models.Site) if err := ph.PostService.RebuildSite(c.Context()); err != nil { return err } return accepts(c, json(func() any { return fiber.Map{} }), html(func(c fiber.Ctx) error { return c.Redirect().To(fmt.Sprintf("/sites/%v/settings", +site.ID)) })) }