init push

This commit is contained in:
2026-05-21 19:52:45 +08:00
commit e3f75311ab
1280 changed files with 179173 additions and 0 deletions

View File

@@ -0,0 +1,46 @@
package share
import (
"net/http"
"github.com/labstack/echo/v4"
"github.com/chaitin/panda-wiki/handler"
"github.com/chaitin/panda-wiki/log"
"github.com/chaitin/panda-wiki/usecase"
)
type ShareSitemapHandler struct {
*handler.BaseHandler
sitemapUsecase *usecase.SitemapUsecase
appUsecase *usecase.AppUsecase
logger *log.Logger
}
func NewShareSitemapHandler(echo *echo.Echo, baseHandler *handler.BaseHandler, sitemapUsecase *usecase.SitemapUsecase, appUsecase *usecase.AppUsecase, logger *log.Logger) *ShareSitemapHandler {
h := &ShareSitemapHandler{
BaseHandler: baseHandler,
sitemapUsecase: sitemapUsecase,
appUsecase: appUsecase,
logger: logger.WithModule("handler.share.sitemap"),
}
group := echo.Group("/sitemap.xml")
group.GET("", h.GetSitemap)
return h
}
func (h *ShareSitemapHandler) GetSitemap(c echo.Context) error {
kbID := c.Request().Header.Get("X-KB-ID")
if kbID == "" {
return h.NewResponseWithError(c, "kb_id is required", nil)
}
xml, err := h.sitemapUsecase.GetSitemap(c.Request().Context(), kbID)
if err != nil {
return h.NewResponseWithError(c, "failed to generate sitemap", err)
}
return c.Blob(http.StatusOK, echo.MIMEApplicationXMLCharsetUTF8, []byte(xml))
}