mirror of https://github.com/Xhofe/alist
				
				
				
			
		
			
				
	
	
		
			92 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Go
		
	
	
			
		
		
	
	
			92 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Go
		
	
	
package common
 | 
						|
 | 
						|
import (
 | 
						|
	"context"
 | 
						|
	"net/http"
 | 
						|
	"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],
 | 
						|
	})
 | 
						|
}
 | 
						|
 | 
						|
func GetHttpReq(ctx context.Context) *http.Request {
 | 
						|
	if c, ok := ctx.(*gin.Context); ok {
 | 
						|
		return c.Request
 | 
						|
	}
 | 
						|
	return nil
 | 
						|
}
 |