feat: add quit-checkin v2 backend APIs

This commit is contained in:
你çšnepiedg
2026-03-17 00:47:33 +08:00
parent 12619aa4ab
commit 9278260681
11 changed files with 2212 additions and 0 deletions
+31
View File
@@ -0,0 +1,31 @@
package routes
import (
"github.com/gin-gonic/gin"
quitcheckinhandler "wx_service/internal/quitcheckin/handler"
)
// registerQuitCheckinRoutes 用于注册 V2 无烟打卡相关接口。
func registerQuitCheckinRoutes(protected *gin.RouterGroup, handler *quitcheckinhandler.Handler) {
v2 := protected.Group("")
{
v2.GET("/profile", handler.GetProfile)
v2.POST("/profile", handler.UpsertProfile)
v2.GET("/checkin/home", handler.Home)
v2.POST("/checkin/check", handler.Checkin)
v2.POST("/checkin/relapse", handler.Relapse)
v2.GET("/stats/overview", handler.StatsOverview)
v2.GET("/badges", handler.ListBadges)
v2.GET("/relapses", handler.ListRelapses)
v2.GET("/reward-goals", handler.ListRewardGoals)
v2.POST("/reward-goals", handler.CreateRewardGoal)
v2.PUT("/reward-goals/:id", handler.UpdateRewardGoal)
v2.GET("/poster/data", handler.PosterData)
v2.POST("/poster/generate", handler.GeneratePoster)
}
}
+12
View File
@@ -16,6 +16,7 @@ import (
marketinghandler "wx_service/internal/marketing/handler"
membershiphandler "wx_service/internal/membership/handler"
"wx_service/internal/middleware"
quitcheckinhandler "wx_service/internal/quitcheckin/handler"
rmhandler "wx_service/internal/remove_watermark/handler"
smokehandler "wx_service/internal/smoke/handler"
)
@@ -38,6 +39,7 @@ func Register(
marketingCategoryHandler *marketinghandler.CategoryHandler,
marketingTemplateHandler *marketinghandler.TemplateHandler,
marketingDownloadHandler *marketinghandler.DownloadHandler,
quitCheckinHandler *quitcheckinhandler.Handler,
) {
// Register 用来集中注册所有 HTTP 路由,便于工程结构更清晰:
// - main 只负责初始化(配置/DB/依赖注入)
@@ -69,6 +71,16 @@ func Register(
registerMarketingRoutes(api, protected, adminToken, marketingCategoryHandler, marketingTemplateHandler, marketingDownloadHandler)
}
apiV2 := router.Group("/api/v2")
{
protectedV2 := apiV2.Group("")
protectedV2.Use(middleware.AuthMiddleware(db, sessionCache))
protectedV2.Use(middleware.RequireUserMiddleware())
{
registerQuitCheckinRoutes(protectedV2, quitCheckinHandler)
}
}
registerAdminRoutes(router, adminHandler, marketingCategoryHandler, marketingTemplateHandler, marketingDownloadHandler)
// 保质期提醒模块使用独立前缀 /api/expiry,与现有 /api/v1 并存。