Use utils.HttpResponse/Abort to replace c.JSON/Abort
All checks were successful
Build Backend (NixCN CMS) TeamCity build finished
Build Frontend (NixCN CMS) TeamCity build finished

Signed-off-by: Asai Neko <sugar@sne.moe>
This commit is contained in:
2026-01-06 12:49:55 +08:00
parent 70846e0d1e
commit 6a9c013799
14 changed files with 203 additions and 116 deletions

View File

@@ -5,6 +5,7 @@ import (
"nixcn-cms/pkgs/authcode"
"nixcn-cms/pkgs/email"
"nixcn-cms/pkgs/turnstile"
"nixcn-cms/utils"
"github.com/gin-gonic/gin"
"github.com/spf13/viper"
@@ -22,26 +23,28 @@ func Magic(c *gin.Context) {
// Parse request
var req MagicRequest
if err := c.ShouldBindJSON(&req); err != nil {
c.JSON(400, gin.H{"error": "invalid request"})
utils.HttpResponse(c, 400, "", "invalid request")
return
}
// Cloudflare turnstile
ok, err := turnstile.VerifyTurnstile(req.TurnstileToken, c.ClientIP())
if err != nil || !ok {
c.JSON(403, gin.H{"error": "turnstile failed"})
utils.HttpResponse(c, 403, "", "turnstile failed")
return
}
code, err := authcode.NewAuthCode(req.ClientId, req.Email)
if err != nil {
c.JSON(500, gin.H{"status": "code gen failed"})
utils.HttpResponse(c, 500, "", "code gen failed")
return
}
externalUrl := viper.GetString("server.external_url")
url, err := url.Parse(externalUrl)
if err != nil {
c.JSON(500, gin.H{"status": "invalid external url"})
utils.HttpResponse(c, 500, "", "invalid external url")
return
}
url.Path = "/api/v1/auth/redirect"
@@ -54,13 +57,17 @@ func Magic(c *gin.Context) {
debugMode := viper.GetBool("server.debug_mode")
if debugMode {
c.JSON(200, gin.H{"status": "magiclink sent", "uri": url.String()})
uriData := struct {
Uri string `json:"uri"`
}{url.String()}
utils.HttpResponse(c, 200, "", "magiclink sent", uriData)
return
} else {
// Send email using resend
emailClient, err := email.NewSMTPClient()
if err != nil {
c.JSON(500, gin.H{"status": "invalid email config"})
utils.HttpResponse(c, 500, "", "invalid email config")
return
}
emailClient.Send(
@@ -70,5 +77,5 @@ func Magic(c *gin.Context) {
)
}
c.JSON(200, gin.H{"status": "magic link sent"})
utils.HttpResponse(c, 200, "", "magic link sent")
}