88 lines
2.3 KiB
Go
88 lines
2.3 KiB
Go
package router
|
|
|
|
import (
|
|
"net/http"
|
|
"strconv"
|
|
|
|
"chatapp3-golang/internal/service/invite"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
)
|
|
|
|
// registerInviteRoutes 注册邀请活动相关路由。
|
|
func registerInviteRoutes(engine *gin.Engine, javaClient authGateway, inviteService *invite.InviteService) {
|
|
if inviteService == nil {
|
|
return
|
|
}
|
|
|
|
engine.GET("/public/h5/invite-campaign/landing", func(c *gin.Context) {
|
|
resp, err := inviteService.GetLanding(c.Request.Context(), c.Query("code"))
|
|
if err != nil {
|
|
writeError(c, err)
|
|
return
|
|
}
|
|
writeOK(c, resp)
|
|
})
|
|
|
|
internalGroup := engine.Group("/internal/invite-campaign")
|
|
internalGroup.POST("/recharge-success", func(c *gin.Context) {
|
|
var req invite.RechargeSuccessRequest
|
|
if err := c.ShouldBindJSON(&req); err != nil {
|
|
writeError(c, invite.NewAppError(http.StatusBadRequest, "bad_request", err.Error()))
|
|
return
|
|
}
|
|
resp, err := inviteService.HandleRechargeSuccess(c.Request.Context(), req)
|
|
if err != nil {
|
|
writeError(c, err)
|
|
return
|
|
}
|
|
writeOK(c, resp)
|
|
})
|
|
|
|
appGroup := engine.Group("/app/h5/invite-campaign")
|
|
appGroup.Use(authMiddleware(javaClient))
|
|
appGroup.GET("/home", func(c *gin.Context) {
|
|
resp, err := inviteService.GetHome(c.Request.Context(), mustAuthUser(c))
|
|
if err != nil {
|
|
writeError(c, err)
|
|
return
|
|
}
|
|
writeOK(c, resp)
|
|
})
|
|
appGroup.GET("/rank", func(c *gin.Context) {
|
|
limit, _ := strconv.Atoi(c.Query("limit"))
|
|
resp, err := inviteService.GetRank(c.Request.Context(), mustAuthUser(c), limit)
|
|
if err != nil {
|
|
writeError(c, err)
|
|
return
|
|
}
|
|
writeOK(c, resp)
|
|
})
|
|
appGroup.POST("/bind-code", func(c *gin.Context) {
|
|
var req invite.BindCodeRequest
|
|
if err := c.ShouldBindJSON(&req); err != nil {
|
|
writeError(c, invite.NewAppError(http.StatusBadRequest, "bad_request", err.Error()))
|
|
return
|
|
}
|
|
resp, err := inviteService.BindCode(c.Request.Context(), mustAuthUser(c), resolveClientIP(c), req)
|
|
if err != nil {
|
|
writeError(c, err)
|
|
return
|
|
}
|
|
writeOK(c, resp)
|
|
})
|
|
appGroup.POST("/tasks/claim", func(c *gin.Context) {
|
|
var req invite.TaskClaimRequest
|
|
if err := c.ShouldBindJSON(&req); err != nil {
|
|
writeError(c, invite.NewAppError(http.StatusBadRequest, "bad_request", err.Error()))
|
|
return
|
|
}
|
|
resp, err := inviteService.ClaimTask(c.Request.Context(), mustAuthUser(c), req)
|
|
if err != nil {
|
|
writeError(c, err)
|
|
return
|
|
}
|
|
writeOK(c, resp)
|
|
})
|
|
}
|