Use utils.HttpResponse/Abort to replace c.JSON/Abort
Signed-off-by: Asai Neko <sugar@sne.moe>
This commit is contained in:
@@ -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")
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user