🐝 reformat code
This commit is contained in:
@@ -5,9 +5,9 @@ import "github.com/gin-gonic/gin"
|
||||
// common meta response
|
||||
func MetaResponse(code int, msg string) gin.H {
|
||||
return gin.H{
|
||||
"meta":gin.H{
|
||||
"code":code,
|
||||
"msg":msg,
|
||||
"meta": gin.H{
|
||||
"code": code,
|
||||
"msg": msg,
|
||||
},
|
||||
}
|
||||
}
|
||||
@@ -15,10 +15,10 @@ func MetaResponse(code int, msg string) gin.H {
|
||||
// common data response
|
||||
func DataResponse(data interface{}) gin.H {
|
||||
return gin.H{
|
||||
"meta":gin.H{
|
||||
"code":200,
|
||||
"msg":"success",
|
||||
"meta": gin.H{
|
||||
"code": 200,
|
||||
"msg": "success",
|
||||
},
|
||||
"data":data,
|
||||
"data": data,
|
||||
}
|
||||
}
|
||||
|
@@ -13,30 +13,30 @@ func Info(c *gin.Context) {
|
||||
|
||||
// handle refresh_cache request
|
||||
func RefreshCache(c *gin.Context) {
|
||||
password:=c.Param("password")
|
||||
password := c.Param("password")
|
||||
if conf.Conf.Cache.Enable {
|
||||
if password == conf.Conf.Cache.RefreshPassword {
|
||||
conf.Cache.Flush()
|
||||
c.JSON(200, MetaResponse(200,"flush success."))
|
||||
c.JSON(200, MetaResponse(200, "flush success."))
|
||||
return
|
||||
}
|
||||
c.JSON(200, MetaResponse(401,"wrong password."))
|
||||
c.JSON(200, MetaResponse(401, "wrong password."))
|
||||
return
|
||||
}
|
||||
c.JSON(200, MetaResponse(400,"disabled cache."))
|
||||
c.JSON(200, MetaResponse(400, "disabled cache."))
|
||||
return
|
||||
}
|
||||
|
||||
// rebuild tree
|
||||
func RebuildTree(c *gin.Context) {
|
||||
if err:=models.Clear();err!=nil{
|
||||
c.JSON(200,MetaResponse(500,err.Error()))
|
||||
if err := models.Clear(); err != nil {
|
||||
c.JSON(200, MetaResponse(500, err.Error()))
|
||||
return
|
||||
}
|
||||
if err:=models.BuildTree();err!=nil {
|
||||
c.JSON(200,MetaResponse(500,err.Error()))
|
||||
if err := models.BuildTree(); err != nil {
|
||||
c.JSON(200, MetaResponse(500, err.Error()))
|
||||
return
|
||||
}
|
||||
c.JSON(200,MetaResponse(200,"success."))
|
||||
c.JSON(200, MetaResponse(200, "success."))
|
||||
return
|
||||
}
|
||||
}
|
||||
|
@@ -13,10 +13,10 @@ import (
|
||||
func Get(c *gin.Context) {
|
||||
var get alidrive.GetReq
|
||||
if err := c.ShouldBindJSON(&get); err != nil {
|
||||
c.JSON(200, controllers.MetaResponse(400,"Bad Request"))
|
||||
c.JSON(200, controllers.MetaResponse(400, "Bad Request"))
|
||||
return
|
||||
}
|
||||
log.Debugf("get:%+v",get)
|
||||
log.Debugf("get:%+v", get)
|
||||
// cache
|
||||
//cacheKey:=fmt.Sprintf("%s-%s","g",get.FileId)
|
||||
//if conf.Conf.Cache.Enable {
|
||||
@@ -27,23 +27,23 @@ func Get(c *gin.Context) {
|
||||
// return
|
||||
// }
|
||||
//}
|
||||
file,err:=alidrive.GetFile(get.FileId)
|
||||
if err !=nil {
|
||||
c.JSON(200, controllers.MetaResponse(500,err.Error()))
|
||||
file, err := alidrive.GetFile(get.FileId)
|
||||
if err != nil {
|
||||
c.JSON(200, controllers.MetaResponse(500, err.Error()))
|
||||
return
|
||||
}
|
||||
paths,err:=alidrive.GetPaths(get.FileId)
|
||||
if err!=nil {
|
||||
c.JSON(200, controllers.MetaResponse(500,err.Error()))
|
||||
paths, err := alidrive.GetPaths(get.FileId)
|
||||
if err != nil {
|
||||
c.JSON(200, controllers.MetaResponse(500, err.Error()))
|
||||
return
|
||||
}
|
||||
file.Paths=*paths
|
||||
download,err:=alidrive.GetDownLoadUrl(get.FileId)
|
||||
if err!=nil {
|
||||
c.JSON(200, controllers.MetaResponse(500,err.Error()))
|
||||
file.Paths = *paths
|
||||
download, err := alidrive.GetDownLoadUrl(get.FileId)
|
||||
if err != nil {
|
||||
c.JSON(200, controllers.MetaResponse(500, err.Error()))
|
||||
return
|
||||
}
|
||||
file.DownloadUrl=download.Url
|
||||
file.DownloadUrl = download.Url
|
||||
//if conf.Conf.Cache.Enable {
|
||||
// conf.Cache.Set(cacheKey,file,cache.DefaultExpiration)
|
||||
//}
|
||||
@@ -51,9 +51,9 @@ func Get(c *gin.Context) {
|
||||
}
|
||||
|
||||
func Down(c *gin.Context) {
|
||||
fileIdParam:=c.Param("file_id")
|
||||
log.Debugf("down:%s",fileIdParam)
|
||||
fileId:=strings.Split(fileIdParam,"/")[1]
|
||||
fileIdParam := c.Param("file_id")
|
||||
log.Debugf("down:%s", fileIdParam)
|
||||
fileId := strings.Split(fileIdParam, "/")[1]
|
||||
//cacheKey:=fmt.Sprintf("%s-%s","d",fileId)
|
||||
//if conf.Conf.Cache.Enable {
|
||||
// downloadUrl,exist:=conf.Cache.Get(cacheKey)
|
||||
@@ -63,14 +63,14 @@ func Down(c *gin.Context) {
|
||||
// return
|
||||
// }
|
||||
//}
|
||||
file,err:=alidrive.GetDownLoadUrl(fileId)
|
||||
file, err := alidrive.GetDownLoadUrl(fileId)
|
||||
if err != nil {
|
||||
c.JSON(200, controllers.MetaResponse(500,err.Error()))
|
||||
c.JSON(200, controllers.MetaResponse(500, err.Error()))
|
||||
return
|
||||
}
|
||||
//if conf.Conf.Cache.Enable {
|
||||
// conf.Cache.Set(cacheKey,file.DownloadUrl,cache.DefaultExpiration)
|
||||
//}
|
||||
c.Redirect(301,file.Url)
|
||||
c.Redirect(301, file.Url)
|
||||
return
|
||||
}
|
||||
|
@@ -12,65 +12,65 @@ import (
|
||||
|
||||
// list request bean
|
||||
type ListReq struct {
|
||||
Password string `json:"password"`
|
||||
Password string `json:"password"`
|
||||
alidrive.ListReq
|
||||
}
|
||||
|
||||
// handle list request
|
||||
func List(c *gin.Context) {
|
||||
var list ListReq
|
||||
if err := c.ShouldBindJSON(&list);err!=nil {
|
||||
c.JSON(200, controllers.MetaResponse(400,"Bad Request"))
|
||||
if err := c.ShouldBindJSON(&list); err != nil {
|
||||
c.JSON(200, controllers.MetaResponse(400, "Bad Request"))
|
||||
return
|
||||
}
|
||||
log.Debugf("list:%+v",list)
|
||||
log.Debugf("list:%+v", list)
|
||||
// cache
|
||||
cacheKey:=fmt.Sprintf("%s-%s-%s","l",list.ParentFileId,list.Password)
|
||||
cacheKey := fmt.Sprintf("%s-%s-%s", "l", list.ParentFileId, list.Password)
|
||||
if conf.Conf.Cache.Enable {
|
||||
files,exist:=conf.Cache.Get(cacheKey)
|
||||
files, exist := conf.Cache.Get(cacheKey)
|
||||
if exist {
|
||||
log.Debugf("使用了缓存:%s",cacheKey)
|
||||
log.Debugf("使用了缓存:%s", cacheKey)
|
||||
c.JSON(200, controllers.DataResponse(files))
|
||||
return
|
||||
}
|
||||
}
|
||||
var (
|
||||
files *alidrive.Files
|
||||
err error
|
||||
err error
|
||||
)
|
||||
if list.Limit == 0 {
|
||||
list.Limit=50
|
||||
list.Limit = 50
|
||||
}
|
||||
if conf.Conf.AliDrive.MaxFilesCount!=0 {
|
||||
list.Limit=conf.Conf.AliDrive.MaxFilesCount
|
||||
if conf.Conf.AliDrive.MaxFilesCount != 0 {
|
||||
list.Limit = conf.Conf.AliDrive.MaxFilesCount
|
||||
}
|
||||
if list.ParentFileId == "root" {
|
||||
files,err=alidrive.GetRoot(list.Limit,list.Marker,list.OrderBy,list.OrderDirection)
|
||||
}else {
|
||||
files,err=alidrive.GetList(list.ParentFileId,list.Limit,list.Marker,list.OrderBy,list.OrderDirection)
|
||||
files, err = alidrive.GetRoot(list.Limit, list.Marker, list.OrderBy, list.OrderDirection)
|
||||
} else {
|
||||
files, err = alidrive.GetList(list.ParentFileId, list.Limit, list.Marker, list.OrderBy, list.OrderDirection)
|
||||
}
|
||||
if err!=nil {
|
||||
c.JSON(200, controllers.MetaResponse(500,err.Error()))
|
||||
if err != nil {
|
||||
c.JSON(200, controllers.MetaResponse(500, err.Error()))
|
||||
return
|
||||
}
|
||||
password:=alidrive.HasPassword(files)
|
||||
if password!="" && password!=list.Password {
|
||||
if list.Password=="" {
|
||||
c.JSON(200, controllers.MetaResponse(401,"need password."))
|
||||
password := alidrive.HasPassword(files)
|
||||
if password != "" && password != list.Password {
|
||||
if list.Password == "" {
|
||||
c.JSON(200, controllers.MetaResponse(401, "need password."))
|
||||
return
|
||||
}
|
||||
c.JSON(200, controllers.MetaResponse(401,"wrong password."))
|
||||
c.JSON(200, controllers.MetaResponse(401, "wrong password."))
|
||||
return
|
||||
}
|
||||
paths,err:=alidrive.GetPaths(list.ParentFileId)
|
||||
if err!=nil {
|
||||
c.JSON(200, controllers.MetaResponse(500,err.Error()))
|
||||
paths, err := alidrive.GetPaths(list.ParentFileId)
|
||||
if err != nil {
|
||||
c.JSON(200, controllers.MetaResponse(500, err.Error()))
|
||||
return
|
||||
}
|
||||
files.Paths=*paths
|
||||
files.Paths = *paths
|
||||
//files.Readme=alidrive.HasReadme(files)
|
||||
if conf.Conf.Cache.Enable {
|
||||
conf.Cache.Set(cacheKey,files,cache.DefaultExpiration)
|
||||
conf.Cache.Set(cacheKey, files, cache.DefaultExpiration)
|
||||
}
|
||||
c.JSON(200, controllers.DataResponse(files))
|
||||
}
|
||||
}
|
||||
|
@@ -11,14 +11,14 @@ import (
|
||||
func OfficePreview(c *gin.Context) {
|
||||
var req alidrive.OfficePreviewUrlReq
|
||||
if err := c.ShouldBindJSON(&req); err != nil {
|
||||
c.JSON(200, controllers.MetaResponse(400,"Bad Request"))
|
||||
c.JSON(200, controllers.MetaResponse(400, "Bad Request"))
|
||||
return
|
||||
}
|
||||
log.Debugf("preview_req:%+v",req)
|
||||
preview,err:=alidrive.GetOfficePreviewUrl(req.FileId)
|
||||
if err!=nil {
|
||||
c.JSON(200, controllers.MetaResponse(500,err.Error()))
|
||||
log.Debugf("preview_req:%+v", req)
|
||||
preview, err := alidrive.GetOfficePreviewUrl(req.FileId)
|
||||
if err != nil {
|
||||
c.JSON(200, controllers.MetaResponse(500, err.Error()))
|
||||
return
|
||||
}
|
||||
c.JSON(200, controllers.DataResponse(preview))
|
||||
}
|
||||
}
|
||||
|
@@ -13,39 +13,39 @@ import (
|
||||
// handle search request
|
||||
func Search(c *gin.Context) {
|
||||
if !conf.Conf.Server.Search {
|
||||
c.JSON(200, controllers.MetaResponse(403,"Not allow search."))
|
||||
c.JSON(200, controllers.MetaResponse(403, "Not allow search."))
|
||||
return
|
||||
}
|
||||
var search alidrive.SearchReq
|
||||
if err := c.ShouldBindJSON(&search); err != nil {
|
||||
c.JSON(200, controllers.MetaResponse(400,"Bad Request"))
|
||||
c.JSON(200, controllers.MetaResponse(400, "Bad Request"))
|
||||
return
|
||||
}
|
||||
log.Debugf("search:%+v",search)
|
||||
log.Debugf("search:%+v", search)
|
||||
// cache
|
||||
cacheKey:=fmt.Sprintf("%s-%s","s",search.Query)
|
||||
cacheKey := fmt.Sprintf("%s-%s", "s", search.Query)
|
||||
if conf.Conf.Cache.Enable {
|
||||
files,exist:=conf.Cache.Get(cacheKey)
|
||||
files, exist := conf.Cache.Get(cacheKey)
|
||||
if exist {
|
||||
log.Debugf("使用了缓存:%s",cacheKey)
|
||||
log.Debugf("使用了缓存:%s", cacheKey)
|
||||
c.JSON(200, controllers.DataResponse(files))
|
||||
return
|
||||
}
|
||||
}
|
||||
if search.Limit == 0 {
|
||||
search.Limit=50
|
||||
search.Limit = 50
|
||||
}
|
||||
// Search只支持0-100
|
||||
//if conf.Conf.AliDrive.MaxFilesCount!=0 {
|
||||
// search.Limit=conf.Conf.AliDrive.MaxFilesCount
|
||||
//}
|
||||
files,err:=alidrive.Search(search.Query,search.Limit,search.OrderBy)
|
||||
files, err := alidrive.Search(search.Query, search.Limit, search.OrderBy)
|
||||
if err != nil {
|
||||
c.JSON(200, controllers.MetaResponse(500,err.Error()))
|
||||
c.JSON(200, controllers.MetaResponse(500, err.Error()))
|
||||
return
|
||||
}
|
||||
if conf.Conf.Cache.Enable {
|
||||
conf.Cache.Set(cacheKey,files,cache.DefaultExpiration)
|
||||
conf.Cache.Set(cacheKey, files, cache.DefaultExpiration)
|
||||
}
|
||||
c.JSON(200, controllers.DataResponse(files))
|
||||
}
|
||||
}
|
||||
|
@@ -23,8 +23,8 @@ func Get(c *gin.Context) {
|
||||
return
|
||||
}
|
||||
log.Debugf("list:%+v", get)
|
||||
path,name:=filepath.Split(get.File)
|
||||
file, err := models.GetFileByParentPathAndName(path,name)
|
||||
dir, name := filepath.Split(get.File)
|
||||
file, err := models.GetFileByParentPathAndName(dir, name)
|
||||
if err != nil {
|
||||
c.JSON(200, controllers.MetaResponse(500, err.Error()))
|
||||
return
|
||||
@@ -34,19 +34,19 @@ func Get(c *gin.Context) {
|
||||
|
||||
// handle download request
|
||||
func Down(c *gin.Context) {
|
||||
filePath:=c.Param("file")
|
||||
log.Debugf("down:%s",filePath)
|
||||
path,name:=filepath.Split(filePath)
|
||||
fileModel, err := models.GetFileByParentPathAndName(path,name)
|
||||
filePath := c.Param("file")
|
||||
log.Debugf("down:%s", filePath)
|
||||
dir, name := filepath.Split(filePath)
|
||||
fileModel, err := models.GetFileByParentPathAndName(dir, name)
|
||||
if err != nil {
|
||||
c.JSON(200, controllers.MetaResponse(500, err.Error()))
|
||||
return
|
||||
}
|
||||
file,err:=alidrive.GetDownLoadUrl(fileModel.FileId)
|
||||
file, err := alidrive.GetDownLoadUrl(fileModel.FileId)
|
||||
if err != nil {
|
||||
c.JSON(200, controllers.MetaResponse(500,err.Error()))
|
||||
c.JSON(200, controllers.MetaResponse(500, err.Error()))
|
||||
return
|
||||
}
|
||||
c.Redirect(301,file.Url)
|
||||
c.Redirect(301, file.Url)
|
||||
return
|
||||
}
|
||||
|
@@ -10,7 +10,7 @@ import (
|
||||
// handle cors request
|
||||
func CorsHandler() gin.HandlerFunc {
|
||||
return func(context *gin.Context) {
|
||||
origin:=context.GetHeader("Origin")
|
||||
origin := context.GetHeader("Origin")
|
||||
// 同源
|
||||
if origin == "" {
|
||||
context.Next()
|
||||
@@ -18,14 +18,14 @@ func CorsHandler() gin.HandlerFunc {
|
||||
}
|
||||
method := context.Request.Method
|
||||
// 设置跨域
|
||||
context.Header("Access-Control-Allow-Origin",origin)
|
||||
context.Header("Access-Control-Allow-Origin", origin)
|
||||
context.Header("Access-Control-Allow-Methods", "POST, GET, OPTIONS, PUT, DELETE,UPDATE")
|
||||
context.Header("Access-Control-Allow-Headers", "Content-Length,session,Accept, Origin, Host, Connection, Accept-Encoding, Accept-Language, Keep-Alive, User-Agent, Cache-Control, Content-Type")
|
||||
context.Header("Access-Control-Expose-Headers", "Content-Length,Cache-Control,Content-Language,Content-Type,Expires,Last-Modified")
|
||||
context.Header("Access-Control-Max-Age", "172800")
|
||||
// 信任域名
|
||||
if conf.Conf.Server.SiteUrl!="*"&&utils.ContainsString(conf.Origins,context.GetHeader("Origin"))==-1 {
|
||||
context.JSON(200,controllers.MetaResponse(413,"The origin is not in the site_url list, please configure it correctly."))
|
||||
if conf.Conf.Server.SiteUrl != "*" && utils.ContainsString(conf.Origins, context.GetHeader("Origin")) == -1 {
|
||||
context.JSON(200, controllers.MetaResponse(413, "The origin is not in the site_url list, please configure it correctly."))
|
||||
context.Abort()
|
||||
}
|
||||
if method == "OPTIONS" {
|
||||
@@ -34,4 +34,4 @@ func CorsHandler() gin.HandlerFunc {
|
||||
//处理请求
|
||||
context.Next()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -14,30 +14,30 @@ import (
|
||||
func InitRouter(engine *gin.Engine) {
|
||||
log.Infof("初始化路由...")
|
||||
engine.Use(CorsHandler())
|
||||
engine.Use(static.Serve("/",static.LocalFile(conf.Conf.Server.Static,false)))
|
||||
engine.Use(static.Serve("/", static.LocalFile(conf.Conf.Server.Static, false)))
|
||||
engine.NoRoute(func(c *gin.Context) {
|
||||
c.File(conf.Conf.Server.Static+"/index.html")
|
||||
c.File(conf.Conf.Server.Static + "/index.html")
|
||||
})
|
||||
InitApiRouter(engine)
|
||||
}
|
||||
|
||||
// init api router
|
||||
func InitApiRouter(engine *gin.Engine) {
|
||||
apiV1 :=engine.Group("/api/v1")
|
||||
apiV1 := engine.Group("/api/v1")
|
||||
{
|
||||
apiV1.GET("/info",controllers.Info)
|
||||
apiV1.GET("/info", controllers.Info)
|
||||
apiV1.POST("/get", v1.Get)
|
||||
apiV1.POST("/list", v1.List)
|
||||
apiV1.POST("/search", v1.Search)
|
||||
apiV1.POST("/office_preview", v1.OfficePreview)
|
||||
apiV1.GET("/d/*file_id", v1.Down)
|
||||
}
|
||||
apiV2:=engine.Group("/api")
|
||||
apiV2 := engine.Group("/api")
|
||||
{
|
||||
apiV2.POST("/list",v2.List)
|
||||
apiV2.POST("/get",v2.Get)
|
||||
apiV2.POST("/list", v2.List)
|
||||
apiV2.POST("/get", v2.Get)
|
||||
}
|
||||
engine.GET("/d/*file",v2.Down)
|
||||
engine.GET("/cache/:password",controllers.RefreshCache)
|
||||
engine.GET("/rebuild",controllers.RebuildTree)
|
||||
}
|
||||
engine.GET("/d/*file", v2.Down)
|
||||
engine.GET("/cache/:password", controllers.RefreshCache)
|
||||
engine.GET("/rebuild", controllers.RebuildTree)
|
||||
}
|
||||
|
Reference in New Issue
Block a user