github.com/cloudreve/Cloudreve/v3@v3.0.0-20240224133659-3edb00a6484c/routers/controllers/callback.go (about) 1 package controllers 2 3 import ( 4 model "github.com/cloudreve/Cloudreve/v3/models" 5 "path" 6 "strconv" 7 8 "github.com/cloudreve/Cloudreve/v3/pkg/serializer" 9 "github.com/cloudreve/Cloudreve/v3/pkg/util" 10 "github.com/cloudreve/Cloudreve/v3/service/callback" 11 "github.com/gin-gonic/gin" 12 ) 13 14 // RemoteCallback 远程上传回调 15 func RemoteCallback(c *gin.Context) { 16 var callbackBody callback.RemoteUploadCallbackService 17 if err := c.ShouldBindJSON(&callbackBody); err == nil { 18 res := callback.ProcessCallback(callbackBody, c) 19 c.JSON(200, res) 20 } else { 21 c.JSON(200, ErrorResponse(err)) 22 } 23 } 24 25 // QiniuCallback 七牛上传回调 26 func QiniuCallback(c *gin.Context) { 27 var callbackBody callback.UploadCallbackService 28 if err := c.ShouldBindJSON(&callbackBody); err == nil { 29 res := callback.ProcessCallback(callbackBody, c) 30 if res.Code != 0 { 31 c.JSON(401, serializer.GeneralUploadCallbackFailed{Error: res.Msg}) 32 } else { 33 c.JSON(200, res) 34 } 35 } else { 36 c.JSON(401, ErrorResponse(err)) 37 } 38 } 39 40 // OSSCallback 阿里云OSS上传回调 41 func OSSCallback(c *gin.Context) { 42 var callbackBody callback.UploadCallbackService 43 if err := c.ShouldBindJSON(&callbackBody); err == nil { 44 if callbackBody.PicInfo == "," { 45 callbackBody.PicInfo = "" 46 } 47 res := callback.ProcessCallback(callbackBody, c) 48 c.JSON(200, res) 49 } else { 50 c.JSON(200, ErrorResponse(err)) 51 } 52 } 53 54 // UpyunCallback 又拍云上传回调 55 func UpyunCallback(c *gin.Context) { 56 var callbackBody callback.UpyunCallbackService 57 if err := c.ShouldBind(&callbackBody); err == nil { 58 if callbackBody.Code != 200 { 59 util.Log().Debug( 60 "Upload callback returned error code:%d, message: %s", 61 callbackBody.Code, 62 callbackBody.Message, 63 ) 64 return 65 } 66 res := callback.ProcessCallback(callbackBody, c) 67 c.JSON(200, res) 68 } else { 69 c.JSON(200, ErrorResponse(err)) 70 } 71 } 72 73 // OneDriveCallback OneDrive上传完成客户端回调 74 func OneDriveCallback(c *gin.Context) { 75 var callbackBody callback.OneDriveCallback 76 if err := c.ShouldBindJSON(&callbackBody); err == nil { 77 res := callbackBody.PreProcess(c) 78 c.JSON(200, res) 79 } else { 80 c.JSON(200, ErrorResponse(err)) 81 } 82 } 83 84 // OneDriveOAuth OneDrive 授权回调 85 func OneDriveOAuth(c *gin.Context) { 86 var callbackBody callback.OauthService 87 if err := c.ShouldBindQuery(&callbackBody); err == nil { 88 res := callbackBody.OdAuth(c) 89 redirect := model.GetSiteURL() 90 redirect.Path = path.Join(redirect.Path, "/admin/policy") 91 queries := redirect.Query() 92 queries.Add("code", strconv.Itoa(res.Code)) 93 queries.Add("msg", res.Msg) 94 queries.Add("err", res.Error) 95 redirect.RawQuery = queries.Encode() 96 c.Redirect(303, redirect.String()) 97 } else { 98 c.JSON(200, ErrorResponse(err)) 99 } 100 } 101 102 // GoogleDriveOAuth Google Drive 授权回调 103 func GoogleDriveOAuth(c *gin.Context) { 104 var callbackBody callback.OauthService 105 if err := c.ShouldBindQuery(&callbackBody); err == nil { 106 res := callbackBody.GDriveAuth(c) 107 redirect := model.GetSiteURL() 108 redirect.Path = path.Join(redirect.Path, "/admin/policy") 109 queries := redirect.Query() 110 queries.Add("code", strconv.Itoa(res.Code)) 111 queries.Add("msg", res.Msg) 112 queries.Add("err", res.Error) 113 redirect.RawQuery = queries.Encode() 114 c.Redirect(303, redirect.String()) 115 } else { 116 c.JSON(200, ErrorResponse(err)) 117 } 118 } 119 120 // COSCallback COS上传完成客户端回调 121 func COSCallback(c *gin.Context) { 122 var callbackBody callback.COSCallback 123 if err := c.ShouldBindQuery(&callbackBody); err == nil { 124 res := callbackBody.PreProcess(c) 125 c.JSON(200, res) 126 } else { 127 c.JSON(200, ErrorResponse(err)) 128 } 129 } 130 131 // S3Callback S3上传完成客户端回调 132 func S3Callback(c *gin.Context) { 133 var callbackBody callback.S3Callback 134 if err := c.ShouldBindQuery(&callbackBody); err == nil { 135 res := callbackBody.PreProcess(c) 136 c.JSON(200, res) 137 } else { 138 c.JSON(200, ErrorResponse(err)) 139 } 140 }