aurora / internal /apierrors /errors.go
qwen2api's picture
Upload 113 files
6bc074c verified
Raw
History Blame Contribute Delete
1.74 kB
package apierrors
import (
"net/http"
"github.com/gin-gonic/gin"
)
// JSONError 统一的 JSON 错误响应构造器。
// 所有 handler 使用此函数代替手动拼装 gin.H{"error": ...}。
func JSONError(c *gin.Context, status int, errType, message string, param *string, code interface{}) {
errObj := gin.H{
"message": message,
"type": errType,
"param": param,
"code": code,
}
c.JSON(status, gin.H{"error": errObj})
}
// BadRequest 返回 400 错误。
func BadRequest(c *gin.Context, errType, message string, code interface{}) {
JSONError(c, http.StatusBadRequest, errType, message, nil, code)
}
// InvalidRequest 返回标准 "invalid_request_error" 400 错误。
func InvalidRequest(c *gin.Context, message string, code interface{}) {
BadRequest(c, "invalid_request_error", message, code)
}
// MissingParam 返回缺少必填参数的 400 错误。
func MissingParam(c *gin.Context, param, code string) {
InvalidRequest(c, "Missing required parameter: "+param, code)
p := param
JSONError(c, http.StatusBadRequest, "invalid_request_error",
"Missing required parameter: "+param, &p, code)
}
// AuthError 返回鉴权错误。
func AuthError(c *gin.Context, status int, message string) {
JSONError(c, status, "authorization_error", message, strPtr("Authorization"), status)
}
// InternalError 返回 500 级别错误。
func InternalError(c *gin.Context, errType, message string, code interface{}) {
JSONError(c, http.StatusInternalServerError, errType, message, nil, code)
}
// NotFoundAccount 返回"未找到账号"错误。
func NotFoundAccount(c *gin.Context) {
c.JSON(http.StatusBadRequest, gin.H{"error": "Not Account Found."})
c.Abort()
}
func strPtr(s string) *string {
return &s
}