From 6459f6b7cbb9ede167cd4aacf470aaeba0ba2dd6 Mon Sep 17 00:00:00 2001 From: aichy126 <16996097+aichy126@users.noreply.github.com> Date: Mon, 12 Dec 2022 15:39:12 +0800 Subject: [PATCH] update sitemap controller --- internal/controller/template_controller.go | 18 +++++++++++++++--- .../controller/template_render/question.go | 10 ++++++++++ internal/router/template_router.go | 2 +- 3 files changed, 26 insertions(+), 4 deletions(-) diff --git a/internal/controller/template_controller.go b/internal/controller/template_controller.go index 2768344e..f5585b89 100644 --- a/internal/controller/template_controller.go +++ b/internal/controller/template_controller.go @@ -18,7 +18,6 @@ import ( "github.com/answerdev/answer/pkg/htmltext" "github.com/answerdev/answer/pkg/obj" "github.com/answerdev/answer/ui" - "github.com/davecgh/go-spew/spew" "github.com/gin-gonic/gin" "github.com/segmentfault/pacman/log" ) @@ -405,6 +404,15 @@ func (tc *TemplateController) html(ctx *gin.Context, code int, tpl string, siteI } func (tc *TemplateController) Sitemap(ctx *gin.Context) { + xml, err := tc.templateRenderController.Sitemap(ctx) + if err != nil { + tc.Page404(ctx) + return + } + ctx.String(http.StatusOK, xml) +} + +func (tc *TemplateController) SitemapPage(ctx *gin.Context) { page := 0 pageParam := ctx.Param("page") pageRegexp := regexp.MustCompile(`question-(.*).xml`) @@ -418,6 +426,10 @@ func (tc *TemplateController) Sitemap(ctx *gin.Context) { tc.Page404(ctx) return } - spew.Dump(page) - ctx.String(http.StatusOK, "sitemap") + xml, err := tc.templateRenderController.SitemapPage(ctx, page) + if err != nil { + tc.Page404(ctx) + return + } + ctx.String(http.StatusOK, xml) } diff --git a/internal/controller/template_render/question.go b/internal/controller/template_render/question.go index e3fd66ba..ce79d3ba 100644 --- a/internal/controller/template_render/question.go +++ b/internal/controller/template_render/question.go @@ -1,6 +1,8 @@ package templaterender import ( + "fmt" + "github.com/answerdev/answer/internal/schema" "github.com/gin-gonic/gin" ) @@ -12,3 +14,11 @@ func (t *TemplateRenderController) Index(ctx *gin.Context, req *schema.QuestionS func (t *TemplateRenderController) QuestionDetail(ctx *gin.Context, id string) (resp *schema.QuestionInfo, err error) { return t.questionService.GetQuestion(ctx, id, "", schema.QuestionPermission{}) } + +func (t *TemplateRenderController) Sitemap(ctx *gin.Context) (string, error) { + return "Sitemap", nil +} + +func (t *TemplateRenderController) SitemapPage(ctx *gin.Context, page int) (string, error) { + return fmt.Sprintf("SitemapPage-%d", page), nil +} diff --git a/internal/router/template_router.go b/internal/router/template_router.go index 1fba0807..8b8c652e 100644 --- a/internal/router/template_router.go +++ b/internal/router/template_router.go @@ -30,7 +30,7 @@ func NewTemplateRouter( func (a *TemplateRouter) RegisterTemplateRouter(r *gin.RouterGroup) { r.GET("/sitemap.xml", a.templateController.Sitemap) - r.GET("/sitemap/:page", a.templateController.Sitemap) + r.GET("/sitemap/:page", a.templateController.SitemapPage) r.GET("/robots.txt", a.siteInfoController.GetRobots)