package routes

import (
	"git.matterlinux.xyz/Matter/website/lib"
	"git.matterlinux.xyz/Matter/website/log"
	"github.com/gofiber/fiber/v2"
)

func GET_Wiki(c *fiber.Ctx) error {
	var (
		con lib.Content
		err error
	)

	if con, err = lib.GetContent("wiki", "main"); err != nil {
		log.Error("GetContent failed: %s", err.Error())
		return lib.RenderError(c, 500)
	}

	return c.Render("post", fiber.Map{
		"title": "Wiki",
		"post":  con,
	})
}

func GET_WikiPage(c *fiber.Ctx) error {
	var (
		contents []lib.Content
		err      error
	)

	docid := c.Params("id")
	if len(docid) == 0 {
		return lib.RenderError(c, 404)
	}

	if contents, err = lib.ListContent("wiki"); err != nil {
		log.Error("ListContent failed: %s", err.Error())
		return lib.RenderError(c, 500)
	}

	for _, con := range contents {
		if con.ID != docid {
			continue
		}

		con, err = lib.GetContent(con.Dir, con.Name)
		if err != nil {
			log.Error("GetContent failed: %s", err.Error())
			return lib.RenderError(c, 500)
		}

		con.Title = "Wiki: " + con.Title

		return c.Render("post", fiber.Map{
			"title": con.Title,
			"post":  con,
		})
	}

	return lib.RenderError(c, 404)
}
