- Add POST /user/email/code endpoint to send 6-digit verification code - Require email code verification before completing registration - Add email code cache with 10min TTL and 5/day send rate limit - Fix nil client guard, TLS conn leak, domain parsing, and Resend error body in email pkg - Deploy via ssh inline command using current branch Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
67 lines
2.2 KiB
Go
67 lines
2.2 KiB
Go
package api
|
||
|
||
import (
|
||
"gitea.com/texpixel/document_ai/api/v1/analytics"
|
||
"gitea.com/texpixel/document_ai/api/v1/formula"
|
||
"gitea.com/texpixel/document_ai/api/v1/oss"
|
||
"gitea.com/texpixel/document_ai/api/v1/task"
|
||
"gitea.com/texpixel/document_ai/api/v1/user"
|
||
"gitea.com/texpixel/document_ai/pkg/common"
|
||
"github.com/gin-gonic/gin"
|
||
)
|
||
|
||
func SetupRouter(engine *gin.RouterGroup) {
|
||
v1 := engine.Group("/v1")
|
||
{
|
||
formulaRouter := v1.Group("/formula", common.GetAuthMiddleware())
|
||
{
|
||
endpoint := formula.NewFormulaEndpoint()
|
||
formulaRouter.POST("/recognition", endpoint.CreateTask)
|
||
formulaRouter.POST("/ai_enhance", endpoint.AIEnhanceRecognition)
|
||
formulaRouter.GET("/recognition/:task_no", endpoint.GetTaskStatus)
|
||
formulaRouter.POST("/test_process_mathpix_task", endpoint.TestProcessMathpixTask)
|
||
}
|
||
|
||
taskRouter := v1.Group("/task", common.GetAuthMiddleware())
|
||
{
|
||
endpoint := task.NewTaskEndpoint()
|
||
taskRouter.POST("/evaluate", endpoint.EvaluateTask)
|
||
taskRouter.GET("/list", common.MustAuthMiddleware(), endpoint.GetTaskList)
|
||
taskRouter.POST("/export", endpoint.ExportTask)
|
||
}
|
||
|
||
ossRouter := v1.Group("/oss", common.GetAuthMiddleware())
|
||
{
|
||
endpoint := oss.NewOSSEndpoint()
|
||
ossRouter.POST("/signature", endpoint.GetPostObjectSignature)
|
||
ossRouter.POST("/signature_url", endpoint.GetSignatureURL)
|
||
ossRouter.POST("/file/upload", endpoint.UploadFile)
|
||
}
|
||
|
||
userEndpoint := user.NewUserEndpoint()
|
||
|
||
userRouter := v1.Group("/user")
|
||
{
|
||
userRouter.POST("/sms", userEndpoint.SendVerificationCode)
|
||
userRouter.POST("/email/code", userEndpoint.SendEmailVerificationCode)
|
||
userRouter.POST("/register", userEndpoint.RegisterByEmail)
|
||
userRouter.POST("/login", userEndpoint.LoginByEmail)
|
||
userRouter.GET("/oauth/google/url", userEndpoint.GetGoogleOAuthUrl)
|
||
userRouter.POST("/oauth/google/callback", userEndpoint.GoogleOAuthCallback)
|
||
}
|
||
|
||
userAuthRouter := v1.Group("/user", common.GetAuthMiddleware())
|
||
{
|
||
userAuthRouter.GET("/info", common.MustAuthMiddleware(), userEndpoint.GetUserInfo)
|
||
}
|
||
|
||
// æ•°æ<C2B0>®åŸ‹ç‚¹è·¯ç”±
|
||
analyticsRouter := v1.Group("/analytics", common.GetAuthMiddleware())
|
||
{
|
||
analyticsHandler := analytics.NewAnalyticsHandler()
|
||
analyticsRouter.POST("/track", analyticsHandler.TrackEvent)
|
||
}
|
||
}
|
||
|
||
}
|