package common import ( "strings" "github.com/alist-org/alist/v3/cmd/flags" "github.com/alist-org/alist/v3/internal/conf" "github.com/gin-gonic/gin" log "github.com/sirupsen/logrus" ) func hidePrivacy(msg string) string { for _, r := range conf.PrivacyReg { msg = r.ReplaceAllStringFunc(msg, func(s string) string { return strings.Repeat("*", len(s)) }) } return msg } // ErrorResp is used to return error response // @param l: if true, log error func ErrorResp(c *gin.Context, err error, code int, l ...bool) { ErrorWithDataResp(c, err, code, nil, l...) //if len(l) > 0 && l[0] { // if flags.Debug || flags.Dev { // log.Errorf("%+v", err) // } else { // log.Errorf("%v", err) // } //} //c.JSON(200, Resp[interface{}]{ // Code: code, // Message: hidePrivacy(err.Error()), // Data: nil, //}) //c.Abort() } func ErrorWithDataResp(c *gin.Context, err error, code int, data interface{}, l ...bool) { if len(l) > 0 && l[0] { if flags.Debug || flags.Dev { log.Errorf("%+v", err) } else { log.Errorf("%v", err) } } c.JSON(200, Resp[interface{}]{ Code: code, Message: hidePrivacy(err.Error()), Data: data, }) c.Abort() } func ErrorStrResp(c *gin.Context, str string, code int, l ...bool) { if len(l) != 0 && l[0] { log.Error(str) } c.JSON(200, Resp[interface{}]{ Code: code, Message: hidePrivacy(str), Data: nil, }) c.Abort() } func SuccessResp(c *gin.Context, data ...interface{}) { if len(data) == 0 { c.JSON(200, Resp[interface{}]{ Code: 200, Message: "success", Data: nil, }) return } c.JSON(200, Resp[interface{}]{ Code: 200, Message: "success", Data: data[0], }) }