refactor(controllers): collapse error-response skeletons into respond helpers

153 handler sites duplicated the same
  if err != nil { c.JSON(200, serializer.Err(c, err)); c.Abort(); return }
skeleton. respondErr() collapses the mid-handler checks and respond()
covers the terminal success/error dispatch. Sites that lacked c.Abort()
now get it for free — a plain return did not actually stop queued
handlers. Also fixes two stale doc comments (SlaveGetTask, cos Open).

Authored By: TDvorak <info@tdvorak.dev>

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
pull/3582/head
Tomas Dvorak 2 weeks ago
parent a0e6826ab7
commit 4de3d4bb3b

@ -10,8 +10,7 @@ import (
func AdminSummary(c *gin.Context) { func AdminSummary(c *gin.Context) {
service := ParametersFromContext[*admin.SummaryService](c, admin.SummaryParamCtx{}) service := ParametersFromContext[*admin.SummaryService](c, admin.SummaryParamCtx{})
res, err := service.Summary(c) res, err := service.Summary(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
return return
} }
@ -22,8 +21,7 @@ func AdminSummary(c *gin.Context) {
func AdminGetSettings(c *gin.Context) { func AdminGetSettings(c *gin.Context) {
service := ParametersFromContext[*admin.GetSettingService](c, admin.GetSettingParamCtx{}) service := ParametersFromContext[*admin.GetSettingService](c, admin.GetSettingParamCtx{})
res, err := service.GetSetting(c) res, err := service.GetSetting(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
return return
} }
@ -33,8 +31,7 @@ func AdminGetSettings(c *gin.Context) {
func AdminSetSettings(c *gin.Context) { func AdminSetSettings(c *gin.Context) {
service := ParametersFromContext[*admin.SetSettingService](c, admin.SetSettingParamCtx{}) service := ParametersFromContext[*admin.SetSettingService](c, admin.SetSettingParamCtx{})
res, err := service.SetSetting(c) res, err := service.SetSetting(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
return return
} }
@ -45,8 +42,7 @@ func AdminSetSettings(c *gin.Context) {
func AdminListGroups(c *gin.Context) { func AdminListGroups(c *gin.Context) {
service := ParametersFromContext[*admin.AdminListService](c, admin.AdminListServiceParamsCtx{}) service := ParametersFromContext[*admin.AdminListService](c, admin.AdminListServiceParamsCtx{})
res, err := service.List(c) res, err := service.List(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
return return
} }
@ -56,8 +52,7 @@ func AdminListGroups(c *gin.Context) {
func AdminFetchWopi(c *gin.Context) { func AdminFetchWopi(c *gin.Context) {
service := ParametersFromContext[*admin.FetchWOPIDiscoveryService](c, admin.FetchWOPIDiscoveryParamCtx{}) service := ParametersFromContext[*admin.FetchWOPIDiscoveryService](c, admin.FetchWOPIDiscoveryParamCtx{})
res, err := service.Fetch(c) res, err := service.Fetch(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
return return
} }
@ -68,8 +63,7 @@ func AdminFetchWopi(c *gin.Context) {
func AdminTestThumbGenerator(c *gin.Context) { func AdminTestThumbGenerator(c *gin.Context) {
service := ParametersFromContext[*admin.ThumbGeneratorTestService](c, admin.ThumbGeneratorTestParamCtx{}) service := ParametersFromContext[*admin.ThumbGeneratorTestService](c, admin.ThumbGeneratorTestParamCtx{})
res, err := service.Test(c) res, err := service.Test(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
return return
} }
@ -78,8 +72,7 @@ func AdminTestThumbGenerator(c *gin.Context) {
func AdminGetQueueMetrics(c *gin.Context) { func AdminGetQueueMetrics(c *gin.Context) {
res, err := admin.GetQueueMetrics(c) res, err := admin.GetQueueMetrics(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
return return
} }
c.JSON(200, serializer.Response{Data: res}) c.JSON(200, serializer.Response{Data: res})
@ -88,8 +81,7 @@ func AdminGetQueueMetrics(c *gin.Context) {
func AdminListPolicies(c *gin.Context) { func AdminListPolicies(c *gin.Context) {
service := ParametersFromContext[*admin.AdminListService](c, admin.AdminListServiceParamsCtx{}) service := ParametersFromContext[*admin.AdminListService](c, admin.AdminListServiceParamsCtx{})
res, err := service.Policies(c) res, err := service.Policies(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
return return
} }
c.JSON(200, serializer.Response{Data: res}) c.JSON(200, serializer.Response{Data: res})
@ -98,8 +90,7 @@ func AdminListPolicies(c *gin.Context) {
func AdminGetPolicy(c *gin.Context) { func AdminGetPolicy(c *gin.Context) {
service := ParametersFromContext[*admin.SingleStoragePolicyService](c, admin.GetStoragePolicyParamCtx{}) service := ParametersFromContext[*admin.SingleStoragePolicyService](c, admin.GetStoragePolicyParamCtx{})
res, err := service.Get(c) res, err := service.Get(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
return return
} }
c.JSON(200, serializer.Response{Data: res}) c.JSON(200, serializer.Response{Data: res})
@ -109,8 +100,7 @@ func AdminGetPolicy(c *gin.Context) {
func AdminSendTestMail(c *gin.Context) { func AdminSendTestMail(c *gin.Context) {
service := ParametersFromContext[*admin.TestSMTPService](c, admin.TestSMTPParamCtx{}) service := ParametersFromContext[*admin.TestSMTPService](c, admin.TestSMTPParamCtx{})
err := service.Test(c) err := service.Test(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
return return
} }
c.JSON(200, serializer.Response{}) c.JSON(200, serializer.Response{})
@ -119,8 +109,7 @@ func AdminSendTestMail(c *gin.Context) {
func AdminCreatePolicy(c *gin.Context) { func AdminCreatePolicy(c *gin.Context) {
service := ParametersFromContext[*admin.CreateStoragePolicyService](c, admin.CreateStoragePolicyParamCtx{}) service := ParametersFromContext[*admin.CreateStoragePolicyService](c, admin.CreateStoragePolicyParamCtx{})
res, err := service.Create(c) res, err := service.Create(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
return return
} }
c.JSON(200, serializer.Response{Data: res}) c.JSON(200, serializer.Response{Data: res})
@ -129,8 +118,7 @@ func AdminCreatePolicy(c *gin.Context) {
func AdminUpdatePolicy(c *gin.Context) { func AdminUpdatePolicy(c *gin.Context) {
service := ParametersFromContext[*admin.UpdateStoragePolicyService](c, admin.UpdateStoragePolicyParamCtx{}) service := ParametersFromContext[*admin.UpdateStoragePolicyService](c, admin.UpdateStoragePolicyParamCtx{})
res, err := service.Update(c) res, err := service.Update(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
return return
} }
c.JSON(200, serializer.Response{Data: res}) c.JSON(200, serializer.Response{Data: res})
@ -139,8 +127,7 @@ func AdminUpdatePolicy(c *gin.Context) {
func AdminListNodes(c *gin.Context) { func AdminListNodes(c *gin.Context) {
service := ParametersFromContext[*admin.AdminListService](c, admin.AdminListServiceParamsCtx{}) service := ParametersFromContext[*admin.AdminListService](c, admin.AdminListServiceParamsCtx{})
res, err := service.Nodes(c) res, err := service.Nodes(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
return return
} }
c.JSON(200, serializer.Response{Data: res}) c.JSON(200, serializer.Response{Data: res})
@ -149,8 +136,7 @@ func AdminListNodes(c *gin.Context) {
func AdminGetNode(c *gin.Context) { func AdminGetNode(c *gin.Context) {
service := ParametersFromContext[*admin.SingleNodeService](c, admin.SingleNodeParamCtx{}) service := ParametersFromContext[*admin.SingleNodeService](c, admin.SingleNodeParamCtx{})
res, err := service.Get(c) res, err := service.Get(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
return return
} }
c.JSON(200, serializer.Response{Data: res}) c.JSON(200, serializer.Response{Data: res})
@ -164,8 +150,7 @@ func AdminClearEntityUrlCache(c *gin.Context) {
func AdminCreateStoragePolicyCors(c *gin.Context) { func AdminCreateStoragePolicyCors(c *gin.Context) {
service := ParametersFromContext[*admin.CreateStoragePolicyCorsService](c, admin.CreateStoragePolicyCorsParamCtx{}) service := ParametersFromContext[*admin.CreateStoragePolicyCorsService](c, admin.CreateStoragePolicyCorsParamCtx{})
err := service.Create(c) err := service.Create(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
return return
} }
@ -175,8 +160,7 @@ func AdminCreateStoragePolicyCors(c *gin.Context) {
func AdminOdOAuthURL(c *gin.Context) { func AdminOdOAuthURL(c *gin.Context) {
service := ParametersFromContext[*admin.GetOauthRedirectService](c, admin.GetOauthRedirectParamCtx{}) service := ParametersFromContext[*admin.GetOauthRedirectService](c, admin.GetOauthRedirectParamCtx{})
res, err := service.GetOAuth(c) res, err := service.GetOAuth(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
return return
} }
c.JSON(200, serializer.Response{Data: res}) c.JSON(200, serializer.Response{Data: res})
@ -190,8 +174,7 @@ func AdminGetPolicyOAuthCallbackURL(c *gin.Context) {
func AdminGetPolicyOAuthStatus(c *gin.Context) { func AdminGetPolicyOAuthStatus(c *gin.Context) {
service := ParametersFromContext[*admin.SingleStoragePolicyService](c, admin.GetStoragePolicyParamCtx{}) service := ParametersFromContext[*admin.SingleStoragePolicyService](c, admin.GetStoragePolicyParamCtx{})
res, err := service.GetOauthCredentialStatus(c) res, err := service.GetOauthCredentialStatus(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
return return
} }
c.JSON(200, serializer.Response{Data: res}) c.JSON(200, serializer.Response{Data: res})
@ -200,8 +183,7 @@ func AdminGetPolicyOAuthStatus(c *gin.Context) {
func AdminFinishOauthCallback(c *gin.Context) { func AdminFinishOauthCallback(c *gin.Context) {
service := ParametersFromContext[*admin.FinishOauthCallbackService](c, admin.FinishOauthCallbackParamCtx{}) service := ParametersFromContext[*admin.FinishOauthCallbackService](c, admin.FinishOauthCallbackParamCtx{})
err := service.Finish(c) err := service.Finish(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
return return
} }
c.JSON(200, serializer.Response{}) c.JSON(200, serializer.Response{})
@ -210,8 +192,7 @@ func AdminFinishOauthCallback(c *gin.Context) {
func AdminGetSharePointDriverRoot(c *gin.Context) { func AdminGetSharePointDriverRoot(c *gin.Context) {
service := ParametersFromContext[*admin.SingleStoragePolicyService](c, admin.GetStoragePolicyParamCtx{}) service := ParametersFromContext[*admin.SingleStoragePolicyService](c, admin.GetStoragePolicyParamCtx{})
res, err := service.GetSharePointDriverRoot(c) res, err := service.GetSharePointDriverRoot(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
return return
} }
c.JSON(200, serializer.Response{Data: res}) c.JSON(200, serializer.Response{Data: res})
@ -220,8 +201,7 @@ func AdminGetSharePointDriverRoot(c *gin.Context) {
func AdminDeletePolicy(c *gin.Context) { func AdminDeletePolicy(c *gin.Context) {
service := ParametersFromContext[*admin.SingleStoragePolicyService](c, admin.GetStoragePolicyParamCtx{}) service := ParametersFromContext[*admin.SingleStoragePolicyService](c, admin.GetStoragePolicyParamCtx{})
err := service.Delete(c) err := service.Delete(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
return return
} }
c.JSON(200, serializer.Response{}) c.JSON(200, serializer.Response{})
@ -230,8 +210,7 @@ func AdminDeletePolicy(c *gin.Context) {
func AdminGetGroup(c *gin.Context) { func AdminGetGroup(c *gin.Context) {
service := ParametersFromContext[*admin.SingleGroupService](c, admin.SingleGroupParamCtx{}) service := ParametersFromContext[*admin.SingleGroupService](c, admin.SingleGroupParamCtx{})
res, err := service.Get(c) res, err := service.Get(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
return return
} }
c.JSON(200, serializer.Response{Data: res}) c.JSON(200, serializer.Response{Data: res})
@ -240,8 +219,7 @@ func AdminGetGroup(c *gin.Context) {
func AdminCreateGroup(c *gin.Context) { func AdminCreateGroup(c *gin.Context) {
service := ParametersFromContext[*admin.UpsertGroupService](c, admin.UpsertGroupParamCtx{}) service := ParametersFromContext[*admin.UpsertGroupService](c, admin.UpsertGroupParamCtx{})
res, err := service.Create(c) res, err := service.Create(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
return return
} }
c.JSON(200, serializer.Response{Data: res}) c.JSON(200, serializer.Response{Data: res})
@ -250,8 +228,7 @@ func AdminCreateGroup(c *gin.Context) {
func AdminUpdateGroup(c *gin.Context) { func AdminUpdateGroup(c *gin.Context) {
service := ParametersFromContext[*admin.UpsertGroupService](c, admin.UpsertGroupParamCtx{}) service := ParametersFromContext[*admin.UpsertGroupService](c, admin.UpsertGroupParamCtx{})
res, err := service.Update(c) res, err := service.Update(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
return return
} }
c.JSON(200, serializer.Response{Data: res}) c.JSON(200, serializer.Response{Data: res})
@ -260,8 +237,7 @@ func AdminUpdateGroup(c *gin.Context) {
func AdminListUsers(c *gin.Context) { func AdminListUsers(c *gin.Context) {
service := ParametersFromContext[*admin.AdminListService](c, admin.AdminListServiceParamsCtx{}) service := ParametersFromContext[*admin.AdminListService](c, admin.AdminListServiceParamsCtx{})
res, err := service.Users(c) res, err := service.Users(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
return return
} }
c.JSON(200, serializer.Response{Data: res}) c.JSON(200, serializer.Response{Data: res})
@ -270,8 +246,7 @@ func AdminListUsers(c *gin.Context) {
func AdminGetUser(c *gin.Context) { func AdminGetUser(c *gin.Context) {
service := ParametersFromContext[*admin.SingleUserService](c, admin.SingleUserParamCtx{}) service := ParametersFromContext[*admin.SingleUserService](c, admin.SingleUserParamCtx{})
res, err := service.Get(c) res, err := service.Get(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
return return
} }
c.JSON(200, serializer.Response{Data: res}) c.JSON(200, serializer.Response{Data: res})
@ -280,8 +255,7 @@ func AdminGetUser(c *gin.Context) {
func AdminUpdateUser(c *gin.Context) { func AdminUpdateUser(c *gin.Context) {
service := ParametersFromContext[*admin.UpsertUserService](c, admin.UpsertUserParamCtx{}) service := ParametersFromContext[*admin.UpsertUserService](c, admin.UpsertUserParamCtx{})
res, err := service.Update(c) res, err := service.Update(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
return return
} }
c.JSON(200, serializer.Response{Data: res}) c.JSON(200, serializer.Response{Data: res})
@ -290,8 +264,7 @@ func AdminUpdateUser(c *gin.Context) {
func AdminCreateUser(c *gin.Context) { func AdminCreateUser(c *gin.Context) {
service := ParametersFromContext[*admin.UpsertUserService](c, admin.UpsertUserParamCtx{}) service := ParametersFromContext[*admin.UpsertUserService](c, admin.UpsertUserParamCtx{})
res, err := service.Create(c) res, err := service.Create(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
return return
} }
c.JSON(200, serializer.Response{Data: res}) c.JSON(200, serializer.Response{Data: res})
@ -357,8 +330,7 @@ func AdminCreateUser(c *gin.Context) {
func AdminDeleteGroup(c *gin.Context) { func AdminDeleteGroup(c *gin.Context) {
service := ParametersFromContext[*admin.SingleGroupService](c, admin.SingleGroupParamCtx{}) service := ParametersFromContext[*admin.SingleGroupService](c, admin.SingleGroupParamCtx{})
err := service.Delete(c) err := service.Delete(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
return return
} }
c.JSON(200, serializer.Response{}) c.JSON(200, serializer.Response{})
@ -368,8 +340,7 @@ func AdminDeleteGroup(c *gin.Context) {
func AdminTestSlave(c *gin.Context) { func AdminTestSlave(c *gin.Context) {
service := ParametersFromContext[*admin.TestNodeService](c, admin.TestNodeParamCtx{}) service := ParametersFromContext[*admin.TestNodeService](c, admin.TestNodeParamCtx{})
err := service.Test(c) err := service.Test(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
return return
} }
c.JSON(200, serializer.Response{}) c.JSON(200, serializer.Response{})
@ -379,8 +350,7 @@ func AdminTestSlave(c *gin.Context) {
func AdminTestDownloader(c *gin.Context) { func AdminTestDownloader(c *gin.Context) {
service := ParametersFromContext[*admin.TestNodeDownloaderService](c, admin.TestNodeDownloaderParamCtx{}) service := ParametersFromContext[*admin.TestNodeDownloaderService](c, admin.TestNodeDownloaderParamCtx{})
res, err := service.Test(c) res, err := service.Test(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
return return
} }
c.JSON(200, serializer.Response{Data: res}) c.JSON(200, serializer.Response{Data: res})
@ -389,8 +359,7 @@ func AdminTestDownloader(c *gin.Context) {
func AdminCreateNode(c *gin.Context) { func AdminCreateNode(c *gin.Context) {
service := ParametersFromContext[*admin.UpsertNodeService](c, admin.UpsertNodeParamCtx{}) service := ParametersFromContext[*admin.UpsertNodeService](c, admin.UpsertNodeParamCtx{})
res, err := service.Create(c) res, err := service.Create(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
return return
} }
c.JSON(200, serializer.Response{Data: res}) c.JSON(200, serializer.Response{Data: res})
@ -399,8 +368,7 @@ func AdminCreateNode(c *gin.Context) {
func AdminUpdateNode(c *gin.Context) { func AdminUpdateNode(c *gin.Context) {
service := ParametersFromContext[*admin.UpsertNodeService](c, admin.UpsertNodeParamCtx{}) service := ParametersFromContext[*admin.UpsertNodeService](c, admin.UpsertNodeParamCtx{})
res, err := service.Update(c) res, err := service.Update(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
return return
} }
c.JSON(200, serializer.Response{Data: res}) c.JSON(200, serializer.Response{Data: res})
@ -409,8 +377,7 @@ func AdminUpdateNode(c *gin.Context) {
func AdminDeleteNode(c *gin.Context) { func AdminDeleteNode(c *gin.Context) {
service := ParametersFromContext[*admin.SingleNodeService](c, admin.SingleNodeParamCtx{}) service := ParametersFromContext[*admin.SingleNodeService](c, admin.SingleNodeParamCtx{})
err := service.Delete(c) err := service.Delete(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
return return
} }
c.JSON(200, serializer.Response{}) c.JSON(200, serializer.Response{})
@ -420,8 +387,7 @@ func AdminDeleteNode(c *gin.Context) {
func AdminDeleteUser(c *gin.Context) { func AdminDeleteUser(c *gin.Context) {
service := ParametersFromContext[*admin.BatchUserService](c, admin.BatchUserParamCtx{}) service := ParametersFromContext[*admin.BatchUserService](c, admin.BatchUserParamCtx{})
err := service.Delete(c) err := service.Delete(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
return return
} }
c.JSON(200, serializer.Response{}) c.JSON(200, serializer.Response{})
@ -431,8 +397,7 @@ func AdminDeleteUser(c *gin.Context) {
func AdminBatchUpdateUser(c *gin.Context) { func AdminBatchUpdateUser(c *gin.Context) {
service := ParametersFromContext[*admin.BatchUserUpdateService](c, admin.BatchUserUpdateParamCtx{}) service := ParametersFromContext[*admin.BatchUserUpdateService](c, admin.BatchUserUpdateParamCtx{})
err := service.Update(c) err := service.Update(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
return return
} }
c.JSON(200, serializer.Response{}) c.JSON(200, serializer.Response{})
@ -441,8 +406,7 @@ func AdminBatchUpdateUser(c *gin.Context) {
func AdminListFiles(c *gin.Context) { func AdminListFiles(c *gin.Context) {
service := ParametersFromContext[*admin.AdminListService](c, admin.AdminListServiceParamsCtx{}) service := ParametersFromContext[*admin.AdminListService](c, admin.AdminListServiceParamsCtx{})
res, err := service.Files(c) res, err := service.Files(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
return return
} }
c.JSON(200, serializer.Response{Data: res}) c.JSON(200, serializer.Response{Data: res})
@ -451,8 +415,7 @@ func AdminListFiles(c *gin.Context) {
func AdminGetFile(c *gin.Context) { func AdminGetFile(c *gin.Context) {
service := ParametersFromContext[*admin.SingleFileService](c, admin.SingleFileParamCtx{}) service := ParametersFromContext[*admin.SingleFileService](c, admin.SingleFileParamCtx{})
res, err := service.Get(c) res, err := service.Get(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
return return
} }
c.JSON(200, serializer.Response{Data: res}) c.JSON(200, serializer.Response{Data: res})
@ -461,8 +424,7 @@ func AdminGetFile(c *gin.Context) {
func AdminUpdateFile(c *gin.Context) { func AdminUpdateFile(c *gin.Context) {
service := ParametersFromContext[*admin.UpsertFileService](c, admin.UpsertFileParamCtx{}) service := ParametersFromContext[*admin.UpsertFileService](c, admin.UpsertFileParamCtx{})
res, err := service.Update(c) res, err := service.Update(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
return return
} }
c.JSON(200, serializer.Response{Data: res}) c.JSON(200, serializer.Response{Data: res})
@ -471,8 +433,7 @@ func AdminUpdateFile(c *gin.Context) {
func AdminGetFileUrl(c *gin.Context) { func AdminGetFileUrl(c *gin.Context) {
service := ParametersFromContext[*admin.SingleFileService](c, admin.SingleFileParamCtx{}) service := ParametersFromContext[*admin.SingleFileService](c, admin.SingleFileParamCtx{})
res, err := service.Url(c) res, err := service.Url(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
return return
} }
c.JSON(200, serializer.Response{Data: res}) c.JSON(200, serializer.Response{Data: res})
@ -481,8 +442,7 @@ func AdminGetFileUrl(c *gin.Context) {
func AdminBatchDeleteFile(c *gin.Context) { func AdminBatchDeleteFile(c *gin.Context) {
service := ParametersFromContext[*admin.BatchFileService](c, admin.BatchFileParamCtx{}) service := ParametersFromContext[*admin.BatchFileService](c, admin.BatchFileParamCtx{})
err := service.Delete(c) err := service.Delete(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
return return
} }
@ -492,8 +452,7 @@ func AdminBatchDeleteFile(c *gin.Context) {
func AdminListEntities(c *gin.Context) { func AdminListEntities(c *gin.Context) {
service := ParametersFromContext[*admin.AdminListService](c, admin.AdminListServiceParamsCtx{}) service := ParametersFromContext[*admin.AdminListService](c, admin.AdminListServiceParamsCtx{})
res, err := service.Entities(c) res, err := service.Entities(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
return return
} }
@ -503,8 +462,7 @@ func AdminListEntities(c *gin.Context) {
func AdminGetEntity(c *gin.Context) { func AdminGetEntity(c *gin.Context) {
service := ParametersFromContext[*admin.SingleEntityService](c, admin.SingleEntityParamCtx{}) service := ParametersFromContext[*admin.SingleEntityService](c, admin.SingleEntityParamCtx{})
res, err := service.Get(c) res, err := service.Get(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
return return
} }
c.JSON(200, serializer.Response{Data: res}) c.JSON(200, serializer.Response{Data: res})
@ -513,8 +471,7 @@ func AdminGetEntity(c *gin.Context) {
func AdminGetEntityUrl(c *gin.Context) { func AdminGetEntityUrl(c *gin.Context) {
service := ParametersFromContext[*admin.SingleEntityService](c, admin.SingleEntityParamCtx{}) service := ParametersFromContext[*admin.SingleEntityService](c, admin.SingleEntityParamCtx{})
res, err := service.Url(c) res, err := service.Url(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
return return
} }
c.JSON(200, serializer.Response{Data: res}) c.JSON(200, serializer.Response{Data: res})
@ -523,8 +480,7 @@ func AdminGetEntityUrl(c *gin.Context) {
func AdminBatchDeleteEntity(c *gin.Context) { func AdminBatchDeleteEntity(c *gin.Context) {
service := ParametersFromContext[*admin.BatchEntityService](c, admin.BatchEntityParamCtx{}) service := ParametersFromContext[*admin.BatchEntityService](c, admin.BatchEntityParamCtx{})
err := service.Delete(c) err := service.Delete(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
return return
} }
} }
@ -532,8 +488,7 @@ func AdminBatchDeleteEntity(c *gin.Context) {
func AdminCleanupTask(c *gin.Context) { func AdminCleanupTask(c *gin.Context) {
service := ParametersFromContext[*admin.CleanupTaskService](c, admin.CleanupTaskParameterCtx{}) service := ParametersFromContext[*admin.CleanupTaskService](c, admin.CleanupTaskParameterCtx{})
err := service.CleanupTask(c) err := service.CleanupTask(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
return return
} }
@ -543,8 +498,7 @@ func AdminCleanupTask(c *gin.Context) {
func AdminListTasks(c *gin.Context) { func AdminListTasks(c *gin.Context) {
service := ParametersFromContext[*admin.AdminListService](c, admin.AdminListServiceParamsCtx{}) service := ParametersFromContext[*admin.AdminListService](c, admin.AdminListServiceParamsCtx{})
res, err := service.Tasks(c) res, err := service.Tasks(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
return return
} }
c.JSON(200, serializer.Response{Data: res}) c.JSON(200, serializer.Response{Data: res})
@ -553,8 +507,7 @@ func AdminListTasks(c *gin.Context) {
func AdminGetTask(c *gin.Context) { func AdminGetTask(c *gin.Context) {
service := ParametersFromContext[*admin.SingleTaskService](c, admin.SingleTaskParamCtx{}) service := ParametersFromContext[*admin.SingleTaskService](c, admin.SingleTaskParamCtx{})
res, err := service.Get(c) res, err := service.Get(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
return return
} }
c.JSON(200, serializer.Response{Data: res}) c.JSON(200, serializer.Response{Data: res})
@ -563,8 +516,7 @@ func AdminGetTask(c *gin.Context) {
func AdminBatchDeleteTask(c *gin.Context) { func AdminBatchDeleteTask(c *gin.Context) {
service := ParametersFromContext[*admin.BatchTaskService](c, admin.BatchTaskParamCtx{}) service := ParametersFromContext[*admin.BatchTaskService](c, admin.BatchTaskParamCtx{})
err := service.Delete(c) err := service.Delete(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
return return
} }
c.JSON(200, serializer.Response{}) c.JSON(200, serializer.Response{})
@ -573,8 +525,7 @@ func AdminBatchDeleteTask(c *gin.Context) {
func AdminListShares(c *gin.Context) { func AdminListShares(c *gin.Context) {
service := ParametersFromContext[*admin.AdminListService](c, admin.AdminListServiceParamsCtx{}) service := ParametersFromContext[*admin.AdminListService](c, admin.AdminListServiceParamsCtx{})
res, err := service.Shares(c) res, err := service.Shares(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
return return
} }
c.JSON(200, serializer.Response{Data: res}) c.JSON(200, serializer.Response{Data: res})
@ -583,8 +534,7 @@ func AdminListShares(c *gin.Context) {
func AdminGetShare(c *gin.Context) { func AdminGetShare(c *gin.Context) {
service := ParametersFromContext[*admin.SingleShareService](c, admin.SingleShareParamCtx{}) service := ParametersFromContext[*admin.SingleShareService](c, admin.SingleShareParamCtx{})
res, err := service.Get(c) res, err := service.Get(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
return return
} }
c.JSON(200, serializer.Response{Data: res}) c.JSON(200, serializer.Response{Data: res})
@ -593,8 +543,7 @@ func AdminGetShare(c *gin.Context) {
func AdminBatchDeleteShare(c *gin.Context) { func AdminBatchDeleteShare(c *gin.Context) {
service := ParametersFromContext[*admin.BatchShareService](c, admin.BatchShareParamCtx{}) service := ParametersFromContext[*admin.BatchShareService](c, admin.BatchShareParamCtx{})
err := service.Delete(c) err := service.Delete(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
return return
} }
c.JSON(200, serializer.Response{}) c.JSON(200, serializer.Response{})
@ -603,8 +552,7 @@ func AdminBatchDeleteShare(c *gin.Context) {
func AdminCalibrateStorage(c *gin.Context) { func AdminCalibrateStorage(c *gin.Context) {
service := ParametersFromContext[*admin.SingleUserService](c, admin.SingleUserParamCtx{}) service := ParametersFromContext[*admin.SingleUserService](c, admin.SingleUserParamCtx{})
res, err := service.CalibrateStorage(c) res, err := service.CalibrateStorage(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
return return
} }
c.JSON(200, serializer.Response{Data: res}) c.JSON(200, serializer.Response{Data: res})
@ -614,8 +562,7 @@ func AdminCalibrateStorage(c *gin.Context) {
func AdminListOAuthClients(c *gin.Context) { func AdminListOAuthClients(c *gin.Context) {
service := ParametersFromContext[*admin.AdminListService](c, admin.AdminListServiceParamsCtx{}) service := ParametersFromContext[*admin.AdminListService](c, admin.AdminListServiceParamsCtx{})
res, err := service.OAuthClients(c) res, err := service.OAuthClients(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
return return
} }
c.JSON(200, serializer.Response{Data: res}) c.JSON(200, serializer.Response{Data: res})
@ -625,8 +572,7 @@ func AdminListOAuthClients(c *gin.Context) {
func AdminGetOAuthClient(c *gin.Context) { func AdminGetOAuthClient(c *gin.Context) {
service := ParametersFromContext[*admin.SingleOAuthClientService](c, admin.SingleOAuthClientParamCtx{}) service := ParametersFromContext[*admin.SingleOAuthClientService](c, admin.SingleOAuthClientParamCtx{})
res, err := service.Get(c) res, err := service.Get(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
return return
} }
c.JSON(200, serializer.Response{Data: res}) c.JSON(200, serializer.Response{Data: res})
@ -636,8 +582,7 @@ func AdminGetOAuthClient(c *gin.Context) {
func AdminCreateOAuthClient(c *gin.Context) { func AdminCreateOAuthClient(c *gin.Context) {
service := ParametersFromContext[*admin.UpsertOAuthClientService](c, admin.UpsertOAuthClientParamCtx{}) service := ParametersFromContext[*admin.UpsertOAuthClientService](c, admin.UpsertOAuthClientParamCtx{})
res, err := service.Create(c) res, err := service.Create(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
return return
} }
c.JSON(200, serializer.Response{Data: res}) c.JSON(200, serializer.Response{Data: res})
@ -647,8 +592,7 @@ func AdminCreateOAuthClient(c *gin.Context) {
func AdminUpdateOAuthClient(c *gin.Context) { func AdminUpdateOAuthClient(c *gin.Context) {
service := ParametersFromContext[*admin.UpsertOAuthClientService](c, admin.UpsertOAuthClientParamCtx{}) service := ParametersFromContext[*admin.UpsertOAuthClientService](c, admin.UpsertOAuthClientParamCtx{})
res, err := service.Update(c) res, err := service.Update(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
return return
} }
c.JSON(200, serializer.Response{Data: res}) c.JSON(200, serializer.Response{Data: res})
@ -658,8 +602,7 @@ func AdminUpdateOAuthClient(c *gin.Context) {
func AdminDeleteOAuthClient(c *gin.Context) { func AdminDeleteOAuthClient(c *gin.Context) {
service := ParametersFromContext[*admin.SingleOAuthClientService](c, admin.SingleOAuthClientParamCtx{}) service := ParametersFromContext[*admin.SingleOAuthClientService](c, admin.SingleOAuthClientParamCtx{})
err := service.Delete(c) err := service.Delete(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
return return
} }
c.JSON(200, serializer.Response{}) c.JSON(200, serializer.Response{})
@ -669,8 +612,7 @@ func AdminDeleteOAuthClient(c *gin.Context) {
func AdminBatchDeleteOAuthClient(c *gin.Context) { func AdminBatchDeleteOAuthClient(c *gin.Context) {
service := ParametersFromContext[*admin.BatchOAuthClientService](c, admin.BatchOAuthClientParamCtx{}) service := ParametersFromContext[*admin.BatchOAuthClientService](c, admin.BatchOAuthClientParamCtx{})
err := service.Delete(c) err := service.Delete(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
return return
} }
c.JSON(200, serializer.Response{}) c.JSON(200, serializer.Response{})

@ -10,9 +10,7 @@ import (
func DownloadArchive(c *gin.Context) { func DownloadArchive(c *gin.Context) {
service := ParametersFromContext[*explorer.ArchiveService](c, explorer.ArchiveParamCtx{}) service := ParametersFromContext[*explorer.ArchiveService](c, explorer.ArchiveParamCtx{})
err := service.DownloadArchived(c) err := service.DownloadArchived(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
c.Abort()
return return
} }
} }
@ -21,9 +19,7 @@ func DownloadArchive(c *gin.Context) {
func CreateArchive(c *gin.Context) { func CreateArchive(c *gin.Context) {
service := ParametersFromContext[*explorer.ArchiveWorkflowService](c, explorer.CreateArchiveParamCtx{}) service := ParametersFromContext[*explorer.ArchiveWorkflowService](c, explorer.CreateArchiveParamCtx{})
resp, err := service.CreateCompressTask(c) resp, err := service.CreateCompressTask(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
c.Abort()
return return
} }
@ -38,9 +34,7 @@ func CreateArchive(c *gin.Context) {
func ImportFiles(c *gin.Context) { func ImportFiles(c *gin.Context) {
service := ParametersFromContext[*explorer.ImportWorkflowService](c, explorer.CreateImportParamCtx{}) service := ParametersFromContext[*explorer.ImportWorkflowService](c, explorer.CreateImportParamCtx{})
resp, err := service.CreateImportTask(c) resp, err := service.CreateImportTask(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
c.Abort()
return return
} }
@ -55,9 +49,7 @@ func ImportFiles(c *gin.Context) {
func CreateRemoteDownload(c *gin.Context) { func CreateRemoteDownload(c *gin.Context) {
service := ParametersFromContext[*explorer.DownloadWorkflowService](c, explorer.CreateDownloadParamCtx{}) service := ParametersFromContext[*explorer.DownloadWorkflowService](c, explorer.CreateDownloadParamCtx{})
resp, err := service.CreateDownloadTask(c) resp, err := service.CreateDownloadTask(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
c.Abort()
return return
} }
@ -72,9 +64,7 @@ func CreateRemoteDownload(c *gin.Context) {
func RebuildFTSIndex(c *gin.Context) { func RebuildFTSIndex(c *gin.Context) {
service := ParametersFromContext[*explorer.RebuildFTSIndexWorkflowService](c, explorer.CreateRebuildFTSIndexParamCtx{}) service := ParametersFromContext[*explorer.RebuildFTSIndexWorkflowService](c, explorer.CreateRebuildFTSIndexParamCtx{})
resp, err := service.CreateRebuildFTSIndexTask(c) resp, err := service.CreateRebuildFTSIndexTask(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
c.Abort()
return return
} }
@ -87,9 +77,7 @@ func RebuildFTSIndex(c *gin.Context) {
func BlobAudit(c *gin.Context) { func BlobAudit(c *gin.Context) {
service := ParametersFromContext[*explorer.BlobAuditWorkflowService](c, explorer.BlobAuditParamCtx{}) service := ParametersFromContext[*explorer.BlobAuditWorkflowService](c, explorer.BlobAuditParamCtx{})
resp, err := service.CreateBlobAuditTask(c) resp, err := service.CreateBlobAuditTask(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
c.Abort()
return return
} }
@ -102,9 +90,7 @@ func BlobAudit(c *gin.Context) {
func ExtractArchive(c *gin.Context) { func ExtractArchive(c *gin.Context) {
service := ParametersFromContext[*explorer.ArchiveWorkflowService](c, explorer.CreateArchiveParamCtx{}) service := ParametersFromContext[*explorer.ArchiveWorkflowService](c, explorer.CreateArchiveParamCtx{})
resp, err := service.CreateExtractTask(c) resp, err := service.CreateExtractTask(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
c.Abort()
return return
} }
@ -150,8 +136,7 @@ func GetSource(c *gin.Context) {
func DeleteDirectLink(c *gin.Context) { func DeleteDirectLink(c *gin.Context) {
err := explorer.DeleteDirectLink(c) err := explorer.DeleteDirectLink(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
return return
} }
@ -162,9 +147,7 @@ func DeleteDirectLink(c *gin.Context) {
func Thumb(c *gin.Context) { func Thumb(c *gin.Context) {
service := ParametersFromContext[*explorer.FileThumbService](c, explorer.FileThumbParameterCtx{}) service := ParametersFromContext[*explorer.FileThumbService](c, explorer.FileThumbParameterCtx{})
res, err := service.Get(c) res, err := service.Get(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
c.Abort()
return return
} }
@ -175,9 +158,7 @@ func Thumb(c *gin.Context) {
func FileURL(c *gin.Context) { func FileURL(c *gin.Context) {
service := ParametersFromContext[*explorer.FileURLService](c, explorer.FileURLParameterCtx{}) service := ParametersFromContext[*explorer.FileURLService](c, explorer.FileURLParameterCtx{})
resp, err := service.Get(c) resp, err := service.Get(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
c.Abort()
return return
} }
@ -192,9 +173,7 @@ func FileURL(c *gin.Context) {
func ServeEntity(c *gin.Context) { func ServeEntity(c *gin.Context) {
service := ParametersFromContext[*explorer.EntityDownloadService](c, explorer.EntityDownloadParameterCtx{}) service := ParametersFromContext[*explorer.EntityDownloadService](c, explorer.EntityDownloadParameterCtx{})
err := service.Serve(c) err := service.Serve(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
c.Abort()
return return
} }
} }
@ -203,9 +182,7 @@ func ServeEntity(c *gin.Context) {
func CreateViewerSession(c *gin.Context) { func CreateViewerSession(c *gin.Context) {
service := ParametersFromContext[*explorer.CreateViewerSessionService](c, explorer.CreateViewerSessionParamCtx{}) service := ParametersFromContext[*explorer.CreateViewerSessionService](c, explorer.CreateViewerSessionParamCtx{})
resp, err := service.Create(c) resp, err := service.Create(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
c.Abort()
return return
} }
@ -248,9 +225,7 @@ func FileUpload(c *gin.Context) {
func DeleteUploadSession(c *gin.Context) { func DeleteUploadSession(c *gin.Context) {
service := ParametersFromContext[*explorer.DeleteUploadSessionService](c, explorer.DeleteUploadSessionParameterCtx{}) service := ParametersFromContext[*explorer.DeleteUploadSessionService](c, explorer.DeleteUploadSessionParameterCtx{})
err := service.Delete(c) err := service.Delete(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
c.Abort()
return return
} }
@ -261,9 +236,7 @@ func DeleteUploadSession(c *gin.Context) {
func CreateUploadSession(c *gin.Context) { func CreateUploadSession(c *gin.Context) {
service := ParametersFromContext[*explorer.CreateUploadSessionService](c, explorer.CreateUploadSessionParameterCtx{}) service := ParametersFromContext[*explorer.CreateUploadSessionService](c, explorer.CreateUploadSessionParameterCtx{})
resp, err := service.Create(c) resp, err := service.Create(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
c.Abort()
return return
} }
@ -276,9 +249,7 @@ func CreateUploadSession(c *gin.Context) {
func CreateFile(c *gin.Context) { func CreateFile(c *gin.Context) {
service := ParametersFromContext[*explorer.CreateFileService](c, explorer.CreateFileParameterCtx{}) service := ParametersFromContext[*explorer.CreateFileService](c, explorer.CreateFileParameterCtx{})
resp, err := service.Create(c) resp, err := service.Create(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
c.Abort()
return return
} }
@ -291,9 +262,7 @@ func CreateFile(c *gin.Context) {
func RenameFile(c *gin.Context) { func RenameFile(c *gin.Context) {
service := ParametersFromContext[*explorer.RenameFileService](c, explorer.RenameFileParameterCtx{}) service := ParametersFromContext[*explorer.RenameFileService](c, explorer.RenameFileParameterCtx{})
resp, err := service.Rename(c) resp, err := service.Rename(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
c.Abort()
return return
} }
@ -305,22 +274,14 @@ func RenameFile(c *gin.Context) {
// MoveFile Moves or Copy files. // MoveFile Moves or Copy files.
func MoveFile(c *gin.Context) { func MoveFile(c *gin.Context) {
service := ParametersFromContext[*explorer.MoveFileService](c, explorer.MoveFileParameterCtx{}) service := ParametersFromContext[*explorer.MoveFileService](c, explorer.MoveFileParameterCtx{})
if err := service.Move(c); err != nil { respond(c, service.Move(c), serializer.Response{})
c.JSON(200, serializer.Err(c, err))
c.Abort()
return
}
c.JSON(200, serializer.Response{})
} }
// Delete 删除文件或目录 // Delete 删除文件或目录
func Delete(c *gin.Context) { func Delete(c *gin.Context) {
service := ParametersFromContext[*explorer.DeleteFileService](c, explorer.DeleteFileParameterCtx{}) service := ParametersFromContext[*explorer.DeleteFileService](c, explorer.DeleteFileParameterCtx{})
err := service.Delete(c) err := service.Delete(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
c.Abort()
return return
} }
@ -331,9 +292,7 @@ func Delete(c *gin.Context) {
func Restore(c *gin.Context) { func Restore(c *gin.Context) {
service := ParametersFromContext[*explorer.DeleteFileService](c, explorer.DeleteFileParameterCtx{}) service := ParametersFromContext[*explorer.DeleteFileService](c, explorer.DeleteFileParameterCtx{})
err := service.Restore(c) err := service.Restore(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
c.Abort()
return return
} }
@ -343,9 +302,7 @@ func Restore(c *gin.Context) {
// EmptyTrash hard-deletes every top-level item in the current user's trash bin. // EmptyTrash hard-deletes every top-level item in the current user's trash bin.
func EmptyTrash(c *gin.Context) { func EmptyTrash(c *gin.Context) {
err := explorer.EmptyTrash(c) err := explorer.EmptyTrash(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
c.Abort()
return return
} }
@ -356,9 +313,7 @@ func EmptyTrash(c *gin.Context) {
func Unlock(c *gin.Context) { func Unlock(c *gin.Context) {
service := ParametersFromContext[*explorer.UnlockFileService](c, explorer.UnlockFileParameterCtx{}) service := ParametersFromContext[*explorer.UnlockFileService](c, explorer.UnlockFileParameterCtx{})
err := service.Unlock(c) err := service.Unlock(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
c.Abort()
return return
} }
@ -369,8 +324,7 @@ func Unlock(c *gin.Context) {
func Pin(c *gin.Context) { func Pin(c *gin.Context) {
service := ParametersFromContext[*explorer.PinFileService](c, explorer.PinFileParameterCtx{}) service := ParametersFromContext[*explorer.PinFileService](c, explorer.PinFileParameterCtx{})
err := service.PinFile(c) err := service.PinFile(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
return return
} }
@ -381,8 +335,7 @@ func Pin(c *gin.Context) {
func Unpin(c *gin.Context) { func Unpin(c *gin.Context) {
service := ParametersFromContext[*explorer.PinFileService](c, explorer.PinFileParameterCtx{}) service := ParametersFromContext[*explorer.PinFileService](c, explorer.PinFileParameterCtx{})
err := service.UnpinFile(c) err := service.UnpinFile(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
return return
} }
@ -393,9 +346,7 @@ func Unpin(c *gin.Context) {
func PatchMetadata(c *gin.Context) { func PatchMetadata(c *gin.Context) {
service := ParametersFromContext[*explorer.PatchMetadataService](c, explorer.PatchMetadataParameterCtx{}) service := ParametersFromContext[*explorer.PatchMetadataService](c, explorer.PatchMetadataParameterCtx{})
err := service.Patch(c) err := service.Patch(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
c.Abort()
return return
} }
@ -406,9 +357,7 @@ func PatchMetadata(c *gin.Context) {
func GetFileInfo(c *gin.Context) { func GetFileInfo(c *gin.Context) {
service := ParametersFromContext[*explorer.GetFileInfoService](c, explorer.GetFileInfoParameterCtx{}) service := ParametersFromContext[*explorer.GetFileInfoService](c, explorer.GetFileInfoParameterCtx{})
resp, err := service.Get(c) resp, err := service.Get(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
c.Abort()
return return
} }
@ -421,9 +370,7 @@ func GetFileInfo(c *gin.Context) {
func SetCurrentVersion(c *gin.Context) { func SetCurrentVersion(c *gin.Context) {
service := ParametersFromContext[*explorer.SetCurrentVersionService](c, explorer.SetCurrentVersionParamCtx{}) service := ParametersFromContext[*explorer.SetCurrentVersionService](c, explorer.SetCurrentVersionParamCtx{})
err := service.Set(c) err := service.Set(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
c.Abort()
return return
} }
@ -434,9 +381,7 @@ func SetCurrentVersion(c *gin.Context) {
func DeleteVersion(c *gin.Context) { func DeleteVersion(c *gin.Context) {
service := ParametersFromContext[*explorer.DeleteVersionService](c, explorer.DeleteVersionParamCtx{}) service := ParametersFromContext[*explorer.DeleteVersionService](c, explorer.DeleteVersionParamCtx{})
err := service.Delete(c) err := service.Delete(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
c.Abort()
return return
} }
@ -446,9 +391,7 @@ func DeleteVersion(c *gin.Context) {
func PatchView(c *gin.Context) { func PatchView(c *gin.Context) {
service := ParametersFromContext[*explorer.PatchViewService](c, explorer.PatchViewParameterCtx{}) service := ParametersFromContext[*explorer.PatchViewService](c, explorer.PatchViewParameterCtx{})
err := service.Patch(c) err := service.Patch(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
c.Abort()
return return
} }
@ -458,9 +401,7 @@ func PatchView(c *gin.Context) {
func ListArchiveFiles(c *gin.Context) { func ListArchiveFiles(c *gin.Context) {
service := ParametersFromContext[*explorer.ArchiveListFilesService](c, explorer.ArchiveListFilesParamCtx{}) service := ParametersFromContext[*explorer.ArchiveListFilesService](c, explorer.ArchiveListFilesParamCtx{})
resp, err := service.List(c) resp, err := service.List(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
c.Abort()
return return
} }
@ -472,9 +413,7 @@ func ListArchiveFiles(c *gin.Context) {
func HandleExplorerEventsPush(c *gin.Context) { func HandleExplorerEventsPush(c *gin.Context) {
service := ParametersFromContext[*explorer.ExplorerEventService](c, explorer.ExplorerEventParamCtx{}) service := ParametersFromContext[*explorer.ExplorerEventService](c, explorer.ExplorerEventParamCtx{})
err := service.HandleExplorerEventsPush(c) err := service.HandleExplorerEventsPush(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
c.Abort()
return return
} }
} }
@ -482,9 +421,7 @@ func HandleExplorerEventsPush(c *gin.Context) {
func FulltextSearch(c *gin.Context) { func FulltextSearch(c *gin.Context) {
service := ParametersFromContext[*explorer.FulltextSearchService](c, explorer.FulltextSearchParamCtx{}) service := ParametersFromContext[*explorer.FulltextSearchService](c, explorer.FulltextSearchParamCtx{})
resp, err := service.Search(c) resp, err := service.Search(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
c.Abort()
return return
} }

@ -9,6 +9,25 @@ import (
"github.com/go-playground/validator/v10" "github.com/go-playground/validator/v10"
) )
// respondErr writes the standard serialized error body and aborts the chain
// when err is non-nil. Handlers use it as `if respondErr(c, err) { return }`.
func respondErr(c *gin.Context, err error) bool {
if err == nil {
return false
}
c.JSON(200, serializer.Err(c, err))
c.Abort()
return true
}
// respond writes err as an error body, or ok as the success body.
func respond(c *gin.Context, err error, ok any) {
if respondErr(c, err) {
return
}
c.JSON(200, ok)
}
// ParamErrorMsg 根据Validator返回的错误信息给出错误提示 // ParamErrorMsg 根据Validator返回的错误信息给出错误提示
func ParamErrorMsg(filed string, tag string) string { func ParamErrorMsg(filed string, tag string) string {
// 未通过验证的表单域与中文对应 // 未通过验证的表单域与中文对应

@ -26,9 +26,7 @@ func OpenIDJWKS(c *gin.Context) {
func GetAppRegistration(c *gin.Context) { func GetAppRegistration(c *gin.Context) {
service := ParametersFromContext[*oauth.GetAppRegistrationService](c, oauth.GetAppRegistrationParamCtx{}) service := ParametersFromContext[*oauth.GetAppRegistrationService](c, oauth.GetAppRegistrationParamCtx{})
app, err := service.Get(c) app, err := service.Get(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
c.Abort()
return return
} }
@ -38,9 +36,7 @@ func GetAppRegistration(c *gin.Context) {
func GrantAppConsent(c *gin.Context) { func GrantAppConsent(c *gin.Context) {
service := ParametersFromContext[*oauth.GrantService](c, oauth.GrantParamCtx{}) service := ParametersFromContext[*oauth.GrantService](c, oauth.GrantParamCtx{})
res, err := service.Issue(c) res, err := service.Issue(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
c.Abort()
return return
} }
@ -75,9 +71,7 @@ func ExchangeToken(c *gin.Context) {
func OpenIDUserInfo(c *gin.Context) { func OpenIDUserInfo(c *gin.Context) {
service := ParametersFromContext[*oauth.UserInfoService](c, oauth.UserInfoParamCtx{}) service := ParametersFromContext[*oauth.UserInfoService](c, oauth.UserInfoParamCtx{})
res, err := service.GetUserInfo(c) res, err := service.GetUserInfo(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
c.Abort()
return return
} }
@ -87,9 +81,7 @@ func OpenIDUserInfo(c *gin.Context) {
func DeleteOAuthGrant(c *gin.Context) { func DeleteOAuthGrant(c *gin.Context) {
service := ParametersFromContext[*oauth.DeleteOAuthGrantService](c, oauth.DeleteOAuthGrantParamCtx{}) service := ParametersFromContext[*oauth.DeleteOAuthGrantService](c, oauth.DeleteOAuthGrantParamCtx{})
err := service.Delete(c) err := service.Delete(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
c.Abort()
return return
} }

@ -0,0 +1,49 @@
package controllers
import (
"errors"
"net/http/httptest"
"testing"
"github.com/cloudreve/Cloudreve/v4/pkg/serializer"
"github.com/gin-gonic/gin"
"github.com/stretchr/testify/assert"
)
func TestRespondErr(t *testing.T) {
gin.SetMode(gin.TestMode)
a := assert.New(t)
// nil err: no write, no abort, returns false.
w := httptest.NewRecorder()
c, _ := gin.CreateTestContext(w)
a.False(respondErr(c, nil))
a.False(c.IsAborted())
a.Equal(200, w.Code)
a.Empty(w.Body.String())
// non-nil err: error body written, chain aborted, returns true.
w = httptest.NewRecorder()
c, _ = gin.CreateTestContext(w)
a.True(respondErr(c, errors.New("boom")))
a.True(c.IsAborted())
a.Contains(w.Body.String(), "boom")
}
func TestRespond(t *testing.T) {
gin.SetMode(gin.TestMode)
a := assert.New(t)
// error path writes the error body, not the success body.
w := httptest.NewRecorder()
c, _ := gin.CreateTestContext(w)
respond(c, errors.New("nope"), serializer.Response{})
a.Contains(w.Body.String(), "nope")
// success path writes the success body.
w = httptest.NewRecorder()
c, _ = gin.CreateTestContext(w)
respond(c, nil, serializer.Response{})
a.Equal(200, w.Code)
a.NotContains(w.Body.String(), "nope")
}

@ -12,8 +12,7 @@ import (
func CreateShare(c *gin.Context) { func CreateShare(c *gin.Context) {
service := ParametersFromContext[*share.ShareCreateService](c, share.ShareCreateParamCtx{}) service := ParametersFromContext[*share.ShareCreateService](c, share.ShareCreateParamCtx{})
uri, err := service.Upsert(c, 0) uri, err := service.Upsert(c, 0)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
return return
} }
@ -24,8 +23,7 @@ func CreateShare(c *gin.Context) {
func EditShare(c *gin.Context) { func EditShare(c *gin.Context) {
service := ParametersFromContext[*share.ShareCreateService](c, share.ShareCreateParamCtx{}) service := ParametersFromContext[*share.ShareCreateService](c, share.ShareCreateParamCtx{})
uri, err := service.Upsert(c, hashid.FromContext(c)) uri, err := service.Upsert(c, hashid.FromContext(c))
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
return return
} }
@ -36,8 +34,7 @@ func EditShare(c *gin.Context) {
func GetShare(c *gin.Context) { func GetShare(c *gin.Context) {
service := ParametersFromContext[*share.ShareInfoService](c, share.ShareInfoParamCtx{}) service := ParametersFromContext[*share.ShareInfoService](c, share.ShareInfoParamCtx{})
info, err := service.Get(c) info, err := service.Get(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
return return
} }
@ -48,9 +45,7 @@ func GetShare(c *gin.Context) {
func ListShare(c *gin.Context) { func ListShare(c *gin.Context) {
service := ParametersFromContext[*share.ListShareService](c, share.ListShareParamCtx{}) service := ParametersFromContext[*share.ListShareService](c, share.ListShareParamCtx{})
resp, err := service.List(c) resp, err := service.List(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
c.Abort()
return return
} }
@ -64,8 +59,7 @@ func ListShare(c *gin.Context) {
// DeleteShare 删除分享 // DeleteShare 删除分享
func DeleteShare(c *gin.Context) { func DeleteShare(c *gin.Context) {
err := share.DeleteShare(c, hashid.FromContext(c)) err := share.DeleteShare(c, hashid.FromContext(c))
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
return return
} }

@ -13,9 +13,7 @@ func SiteConfig(c *gin.Context) {
service := ParametersFromContext[*basic.GetSettingService](c, basic.GetSettingParamCtx{}) service := ParametersFromContext[*basic.GetSettingService](c, basic.GetSettingParamCtx{})
resp, err := service.GetSiteConfig(c) resp, err := service.GetSiteConfig(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
c.Abort()
return return
} }

@ -33,25 +33,13 @@ func SlaveUpload(c *gin.Context) {
// SlaveGetUploadSession 从机创建上传会话 // SlaveGetUploadSession 从机创建上传会话
func SlaveGetUploadSession(c *gin.Context) { func SlaveGetUploadSession(c *gin.Context) {
service := ParametersFromContext[*explorer.SlaveCreateUploadSessionService](c, explorer.SlaveCreateUploadSessionParamCtx{}) service := ParametersFromContext[*explorer.SlaveCreateUploadSessionService](c, explorer.SlaveCreateUploadSessionParamCtx{})
if err := service.Create(c); err != nil { respond(c, service.Create(c), serializer.Response{})
c.JSON(200, serializer.Err(c, err))
c.Abort()
return
}
c.JSON(200, serializer.Response{})
} }
// SlaveDeleteUploadSession 从机删除上传会话 // SlaveDeleteUploadSession 从机删除上传会话
func SlaveDeleteUploadSession(c *gin.Context) { func SlaveDeleteUploadSession(c *gin.Context) {
service := ParametersFromContext[*explorer.SlaveDeleteUploadSessionService](c, explorer.SlaveDeleteUploadSessionParamCtx{}) service := ParametersFromContext[*explorer.SlaveDeleteUploadSessionService](c, explorer.SlaveDeleteUploadSessionParamCtx{})
if err := service.Delete(c); err != nil { respond(c, service.Delete(c), serializer.Response{})
c.JSON(200, serializer.Err(c, err))
c.Abort()
return
}
c.JSON(200, serializer.Response{})
} }
// SlaveServeEntity download entity content // SlaveServeEntity download entity content
@ -69,9 +57,7 @@ func SlaveServeEntity(c *gin.Context) {
func SlaveMeta(c *gin.Context) { func SlaveMeta(c *gin.Context) {
service := ParametersFromContext[*explorer.SlaveMetaService](c, explorer.SlaveMetaParamCtx{}) service := ParametersFromContext[*explorer.SlaveMetaService](c, explorer.SlaveMetaParamCtx{})
res, err := service.MediaMeta(c) res, err := service.MediaMeta(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
c.Abort()
return return
} }
@ -82,9 +68,7 @@ func SlaveMeta(c *gin.Context) {
func SlaveThumb(c *gin.Context) { func SlaveThumb(c *gin.Context) {
service := ParametersFromContext[*explorer.SlaveThumbService](c, explorer.SlaveThumbParamCtx{}) service := ParametersFromContext[*explorer.SlaveThumbService](c, explorer.SlaveThumbParamCtx{})
err := service.Thumb(c) err := service.Thumb(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
c.Abort()
return return
} }
} }
@ -107,22 +91,14 @@ func SlaveDelete(c *gin.Context) {
// SlavePing 从机测试 // SlavePing 从机测试
func SlavePing(c *gin.Context) { func SlavePing(c *gin.Context) {
service := ParametersFromContext[*admin.SlavePingService](c, admin.SlavePingParameterCtx{}) service := ParametersFromContext[*admin.SlavePingService](c, admin.SlavePingParameterCtx{})
if err := service.Test(c); err != nil { respond(c, service.Test(c), serializer.Response{})
c.JSON(200, serializer.Err(c, err))
c.Abort()
return
}
c.JSON(200, serializer.Response{})
} }
// SlaveList 从机列出文件 // SlaveList 从机列出文件
func SlaveList(c *gin.Context) { func SlaveList(c *gin.Context) {
service := ParametersFromContext[*explorer.SlaveListService](c, explorer.SlaveListParamCtx{}) service := ParametersFromContext[*explorer.SlaveListService](c, explorer.SlaveListParamCtx{})
objects, err := service.List(c) objects, err := service.List(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
c.Abort()
return return
} }
@ -134,9 +110,7 @@ func SlaveDownloadTaskCreate(c *gin.Context) {
service := ParametersFromContext[*slave.CreateSlaveDownload](c, node.CreateSlaveDownloadTaskParamCtx{}) service := ParametersFromContext[*slave.CreateSlaveDownload](c, node.CreateSlaveDownloadTaskParamCtx{})
d := c.MustGet(downloader.DownloaderCtxKey).(downloader.Downloader) d := c.MustGet(downloader.DownloaderCtxKey).(downloader.Downloader)
handle, err := d.CreateTask(c, service.Url, service.Options) handle, err := d.CreateTask(c, service.Url, service.Options)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
c.Abort()
return return
} }
@ -168,9 +142,7 @@ func SlaveCancelDownloadTask(c *gin.Context) {
service := ParametersFromContext[*slave.CancelSlaveDownload](c, node.CancelSlaveDownloadTaskParamCtx{}) service := ParametersFromContext[*slave.CancelSlaveDownload](c, node.CancelSlaveDownloadTaskParamCtx{})
d := c.MustGet(downloader.DownloaderCtxKey).(downloader.Downloader) d := c.MustGet(downloader.DownloaderCtxKey).(downloader.Downloader)
err := d.Cancel(c, service.Handle) err := d.Cancel(c, service.Handle)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
c.Abort()
return return
} }
@ -182,9 +154,7 @@ func SlaveSelectFilesToDownload(c *gin.Context) {
service := ParametersFromContext[*slave.SetSlaveFilesToDownload](c, node.SelectSlaveDownloadFilesParamCtx{}) service := ParametersFromContext[*slave.SetSlaveFilesToDownload](c, node.SelectSlaveDownloadFilesParamCtx{})
d := c.MustGet(downloader.DownloaderCtxKey).(downloader.Downloader) d := c.MustGet(downloader.DownloaderCtxKey).(downloader.Downloader)
err := d.SetFilesToDownload(c, service.Handle, service.Args...) err := d.SetFilesToDownload(c, service.Handle, service.Args...)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
c.Abort()
return return
} }
@ -195,9 +165,7 @@ func SlaveSelectFilesToDownload(c *gin.Context) {
func SlaveTestDownloader(c *gin.Context) { func SlaveTestDownloader(c *gin.Context) {
d := c.MustGet(downloader.DownloaderCtxKey).(downloader.Downloader) d := c.MustGet(downloader.DownloaderCtxKey).(downloader.Downloader)
res, err := d.Test(c) res, err := d.Test(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
c.Abort()
return return
} }
@ -208,9 +176,7 @@ func SlaveTestDownloader(c *gin.Context) {
func SlaveGetCredential(c *gin.Context) { func SlaveGetCredential(c *gin.Context) {
service := ParametersFromContext[*node.OauthCredentialService](c, node.OauthCredentialParamCtx{}) service := ParametersFromContext[*node.OauthCredentialService](c, node.OauthCredentialParamCtx{})
cred, err := service.Get(c) cred, err := service.Get(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
c.Abort()
return return
} }
@ -221,22 +187,18 @@ func SlaveGetCredential(c *gin.Context) {
func SlaveCreateTask(c *gin.Context) { func SlaveCreateTask(c *gin.Context) {
service := ParametersFromContext[*cluster.CreateSlaveTask](c, node.CreateSlaveTaskParamCtx{}) service := ParametersFromContext[*cluster.CreateSlaveTask](c, node.CreateSlaveTaskParamCtx{})
taskId, err := node.CreateTaskInSlave(service, c) taskId, err := node.CreateTaskInSlave(service, c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
c.Abort()
return return
} }
c.JSON(200, serializer.NewResponseWithGobData(c, taskId)) c.JSON(200, serializer.NewResponseWithGobData(c, taskId))
} }
// SlaveCreateTask creates tasks and register it in registry // SlaveGetTask returns the slave node's task info
func SlaveGetTask(c *gin.Context) { func SlaveGetTask(c *gin.Context) {
service := ParametersFromContext[*node.GetSlaveTaskService](c, node.GetSlaveTaskParamCtx{}) service := ParametersFromContext[*node.GetSlaveTaskService](c, node.GetSlaveTaskParamCtx{})
task, err := service.Get(c) task, err := service.Get(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
c.Abort()
return return
} }
@ -245,21 +207,13 @@ func SlaveGetTask(c *gin.Context) {
func SlaveCleanupFolder(c *gin.Context) { func SlaveCleanupFolder(c *gin.Context) {
service := ParametersFromContext[*cluster.FolderCleanup](c, node.FolderCleanupParamCtx{}) service := ParametersFromContext[*cluster.FolderCleanup](c, node.FolderCleanupParamCtx{})
if err := node.Cleanup(service, c); err != nil { respond(c, node.Cleanup(service, c), serializer.Response{})
c.JSON(200, serializer.Err(c, err))
c.Abort()
return
}
c.JSON(200, serializer.Response{})
} }
func StatelessPrepareUpload(c *gin.Context) { func StatelessPrepareUpload(c *gin.Context) {
service := ParametersFromContext[*fs.StatelessPrepareUploadService](c, node.StatelessPrepareUploadParamCtx{}) service := ParametersFromContext[*fs.StatelessPrepareUploadService](c, node.StatelessPrepareUploadParamCtx{})
uploadSession, err := node.StatelessPrepareUpload(service, c) uploadSession, err := node.StatelessPrepareUpload(service, c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
c.Abort()
return return
} }
@ -269,9 +223,7 @@ func StatelessPrepareUpload(c *gin.Context) {
func StatelessCompleteUpload(c *gin.Context) { func StatelessCompleteUpload(c *gin.Context) {
service := ParametersFromContext[*fs.StatelessCompleteUploadService](c, node.StatelessCompleteUploadParamCtx{}) service := ParametersFromContext[*fs.StatelessCompleteUploadService](c, node.StatelessCompleteUploadParamCtx{})
_, err := node.StatelessCompleteUpload(service, c) _, err := node.StatelessCompleteUpload(service, c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
c.Abort()
return return
} }
@ -280,22 +232,10 @@ func StatelessCompleteUpload(c *gin.Context) {
func StatelessOnUploadFailed(c *gin.Context) { func StatelessOnUploadFailed(c *gin.Context) {
service := ParametersFromContext[*fs.StatelessOnUploadFailedService](c, node.StatelessOnUploadFailedParamCtx{}) service := ParametersFromContext[*fs.StatelessOnUploadFailedService](c, node.StatelessOnUploadFailedParamCtx{})
if err := node.StatelessOnUploadFailed(service, c); err != nil { respond(c, node.StatelessOnUploadFailed(service, c), serializer.Response{})
c.JSON(200, serializer.Err(c, err))
c.Abort()
return
}
c.JSON(200, serializer.Response{})
} }
func StatelessCreateFile(c *gin.Context) { func StatelessCreateFile(c *gin.Context) {
service := ParametersFromContext[*fs.StatelessCreateFileService](c, node.StatelessCreateFileParamCtx{}) service := ParametersFromContext[*fs.StatelessCreateFileService](c, node.StatelessCreateFileParamCtx{})
if err := node.StatelessCreateFile(service, c); err != nil { respond(c, node.StatelessCreateFile(service, c), serializer.Response{})
c.JSON(200, serializer.Err(c, err))
c.Abort()
return
}
c.JSON(200, serializer.Response{})
} }

@ -16,8 +16,7 @@ import (
// StartLoginAuthn 开始注册WebAuthn登录 // StartLoginAuthn 开始注册WebAuthn登录
func StartLoginAuthn(c *gin.Context) { func StartLoginAuthn(c *gin.Context) {
res, err := user.PreparePasskeyLogin(c) res, err := user.PreparePasskeyLogin(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
return return
} }
@ -28,9 +27,7 @@ func StartLoginAuthn(c *gin.Context) {
func FinishLoginAuthn(c *gin.Context) { func FinishLoginAuthn(c *gin.Context) {
service := ParametersFromContext[*user.FinishPasskeyLoginService](c, user.FinishPasskeyLoginParameterCtx{}) service := ParametersFromContext[*user.FinishPasskeyLoginService](c, user.FinishPasskeyLoginParameterCtx{})
u, err := service.FinishPasskeyLogin(c) u, err := service.FinishPasskeyLogin(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
c.Abort()
return return
} }
@ -40,8 +37,7 @@ func FinishLoginAuthn(c *gin.Context) {
// StartRegAuthn 开始注册WebAuthn信息 // StartRegAuthn 开始注册WebAuthn信息
func StartRegAuthn(c *gin.Context) { func StartRegAuthn(c *gin.Context) {
res, err := user.PreparePasskeyRegister(c) res, err := user.PreparePasskeyRegister(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
return return
} }
@ -52,8 +48,7 @@ func StartRegAuthn(c *gin.Context) {
func FinishRegAuthn(c *gin.Context) { func FinishRegAuthn(c *gin.Context) {
service := ParametersFromContext[*user.FinishPasskeyRegisterService](c, user.FinishPasskeyRegisterParameterCtx{}) service := ParametersFromContext[*user.FinishPasskeyRegisterService](c, user.FinishPasskeyRegisterParameterCtx{})
res, err := service.FinishPasskeyRegister(c) res, err := service.FinishPasskeyRegister(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
return return
} }
@ -64,8 +59,7 @@ func FinishRegAuthn(c *gin.Context) {
func UserDeletePasskey(c *gin.Context) { func UserDeletePasskey(c *gin.Context) {
service := ParametersFromContext[*user.DeletePasskeyService](c, user.DeletePasskeyParameterCtx{}) service := ParametersFromContext[*user.DeletePasskeyService](c, user.DeletePasskeyParameterCtx{})
err := service.DeletePasskey(c) err := service.DeletePasskey(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
return return
} }
@ -76,9 +70,7 @@ func UserDeletePasskey(c *gin.Context) {
func UserLoginValidation(c *gin.Context) { func UserLoginValidation(c *gin.Context) {
service := ParametersFromContext[*user.UserLoginService](c, user.LoginParameterCtx{}) service := ParametersFromContext[*user.UserLoginService](c, user.LoginParameterCtx{})
expectedUser, twoFaSession, err := service.Login(c) expectedUser, twoFaSession, err := service.Login(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
c.Abort()
return return
} }
@ -97,9 +89,7 @@ func UserLoginValidation(c *gin.Context) {
func UserLogin2FAValidation(c *gin.Context) { func UserLogin2FAValidation(c *gin.Context) {
service := ParametersFromContext[*user.OtpValidationService](c, user.OtpValidationParameterCtx{}) service := ParametersFromContext[*user.OtpValidationService](c, user.OtpValidationParameterCtx{})
expectedUser, err := service.Verify2FA(c) expectedUser, err := service.Verify2FA(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
c.Abort()
return return
} }
@ -110,9 +100,7 @@ func UserLogin2FAValidation(c *gin.Context) {
// UserIssueToken generates new token pair for user // UserIssueToken generates new token pair for user
func UserIssueToken(c *gin.Context) { func UserIssueToken(c *gin.Context) {
resp, err := user.IssueToken(c) resp, err := user.IssueToken(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
c.Abort()
return return
} }
@ -125,9 +113,7 @@ func UserIssueToken(c *gin.Context) {
func UserRefreshToken(c *gin.Context) { func UserRefreshToken(c *gin.Context) {
service := ParametersFromContext[*user.RefreshTokenService](c, user.RefreshTokenParameterCtx{}) service := ParametersFromContext[*user.RefreshTokenService](c, user.RefreshTokenParameterCtx{})
resp, err := service.Refresh(c) resp, err := service.Refresh(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
c.Abort()
return return
} }
@ -145,9 +131,7 @@ func UserRegister(c *gin.Context) {
// UserSendReset 发送密码重设邮件 // UserSendReset 发送密码重设邮件
func UserSendReset(c *gin.Context) { func UserSendReset(c *gin.Context) {
service := ParametersFromContext[*user.UserResetEmailService](c, user.UserResetEmailParameterCtx{}) service := ParametersFromContext[*user.UserResetEmailService](c, user.UserResetEmailParameterCtx{})
if err := service.Reset(c); err != nil { if err := service.Reset(c); respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
c.Abort()
return return
} }
c.JSON(200, serializer.Response{}) c.JSON(200, serializer.Response{})
@ -157,9 +141,7 @@ func UserSendReset(c *gin.Context) {
func UserReset(c *gin.Context) { func UserReset(c *gin.Context) {
service := ParametersFromContext[*user.UserResetService](c, user.UserResetParameterCtx{}) service := ParametersFromContext[*user.UserResetService](c, user.UserResetParameterCtx{})
res, err := service.Reset(c) res, err := service.Reset(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
c.Abort()
return return
} }
c.JSON(200, serializer.Response{Data: res}) c.JSON(200, serializer.Response{Data: res})
@ -173,34 +155,20 @@ func UserActivate(c *gin.Context) {
// UserRequestEmailChange starts the self-service email change flow. // UserRequestEmailChange starts the self-service email change flow.
func UserRequestEmailChange(c *gin.Context) { func UserRequestEmailChange(c *gin.Context) {
service := ParametersFromContext[*user.RequestEmailChangeService](c, user.RequestEmailChangeParamCtx{}) service := ParametersFromContext[*user.RequestEmailChangeService](c, user.RequestEmailChangeParamCtx{})
if err := service.Request(c); err != nil { respond(c, service.Request(c), serializer.Response{})
c.JSON(200, serializer.Err(c, err))
c.Abort()
return
}
c.JSON(200, serializer.Response{})
} }
// UserActivateEmailChange applies the pending email change from the signed // UserActivateEmailChange applies the pending email change from the signed
// confirmation link. // confirmation link.
func UserActivateEmailChange(c *gin.Context) { func UserActivateEmailChange(c *gin.Context) {
if err := user.ActivateEmailChange(c); err != nil { respond(c, user.ActivateEmailChange(c), serializer.Response{})
c.JSON(200, serializer.Err(c, err))
c.Abort()
return
}
c.JSON(200, serializer.Response{})
} }
// UserSignOut 用户退出登录 // UserSignOut 用户退出登录
func UserSignOut(c *gin.Context) { func UserSignOut(c *gin.Context) {
service := ParametersFromContext[*user.RefreshTokenService](c, user.RefreshTokenParameterCtx{}) service := ParametersFromContext[*user.RefreshTokenService](c, user.RefreshTokenParameterCtx{})
res, err := service.Delete(c) res, err := service.Delete(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
c.Abort()
return return
} }
@ -220,9 +188,7 @@ func UserMe(c *gin.Context) {
// UserGet 获取用户信息 // UserGet 获取用户信息
func UserGet(c *gin.Context) { func UserGet(c *gin.Context) {
u, err := user.GetUser(c) u, err := user.GetUser(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
c.Abort()
return return
} }
@ -239,9 +205,7 @@ func UserGet(c *gin.Context) {
// UserStorage 获取用户的存储信息 // UserStorage 获取用户的存储信息
func UserStorage(c *gin.Context) { func UserStorage(c *gin.Context) {
res, err := user.GetUserCapacity(c) res, err := user.GetUserCapacity(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
c.Abort()
return return
} }
@ -253,9 +217,7 @@ func UserStorage(c *gin.Context) {
// UserSetting 获取用户设定 // UserSetting 获取用户设定
func UserSetting(c *gin.Context) { func UserSetting(c *gin.Context) {
res, err := user.GetUserSettings(c) res, err := user.GetUserSettings(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
c.Abort()
return return
} }
@ -266,21 +228,14 @@ func UserSetting(c *gin.Context) {
// UploadAvatar 从文件上传头像 // UploadAvatar 从文件上传头像
func UploadAvatar(c *gin.Context) { func UploadAvatar(c *gin.Context) {
if err := user.UpdateUserAvatar(c); err != nil { respond(c, user.UpdateUserAvatar(c), serializer.Response{})
c.JSON(200, serializer.Err(c, err))
return
}
c.JSON(200, serializer.Response{})
} }
// GetUserAvatar 获取用户头像 // GetUserAvatar 获取用户头像
func GetUserAvatar(c *gin.Context) { func GetUserAvatar(c *gin.Context) {
service := ParametersFromContext[*user.GetAvatarService](c, user.GetAvatarServiceParamsCtx{}) service := ParametersFromContext[*user.GetAvatarService](c, user.GetAvatarServiceParamsCtx{})
err := service.Get(c) err := service.Get(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
c.Abort()
return return
} }
} }
@ -289,9 +244,7 @@ func GetUserAvatar(c *gin.Context) {
func UpdateOption(c *gin.Context) { func UpdateOption(c *gin.Context) {
service := ParametersFromContext[*user.PatchUserSetting](c, user.PatchUserSettingParamsCtx{}) service := ParametersFromContext[*user.PatchUserSetting](c, user.PatchUserSettingParamsCtx{})
err := service.Patch(c) err := service.Patch(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
c.Abort()
return return
} }
@ -344,9 +297,7 @@ func UpdateOption(c *gin.Context) {
// UserInit2FA 初始化二步验证 // UserInit2FA 初始化二步验证
func UserInit2FA(c *gin.Context) { func UserInit2FA(c *gin.Context) {
secret, err := user.Init2FA(c) secret, err := user.Init2FA(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
c.Abort()
return return
} }
@ -370,9 +321,7 @@ func UserPerformCopySession(c *gin.Context) {
func UserPrepareLogin(c *gin.Context) { func UserPrepareLogin(c *gin.Context) {
service := ParametersFromContext[*user.PrepareLoginService](c, user.PrepareLoginParameterCtx{}) service := ParametersFromContext[*user.PrepareLoginService](c, user.PrepareLoginParameterCtx{})
res, err := service.Prepare(c) res, err := service.Prepare(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
c.Abort()
return return
} }
@ -396,9 +345,7 @@ func UserSSOCallback(c *gin.Context) {
func UserSSOExchange(c *gin.Context) { func UserSSOExchange(c *gin.Context) {
service := ParametersFromContext[*user.SSOExchangeService](c, user.SSOExchangeParameterCtx{}) service := ParametersFromContext[*user.SSOExchangeService](c, user.SSOExchangeParameterCtx{})
res, err := service.SSOExchange(c) res, err := service.SSOExchange(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
c.Abort()
return return
} }
@ -409,9 +356,7 @@ func UserSSOExchange(c *gin.Context) {
func UserSearch(c *gin.Context) { func UserSearch(c *gin.Context) {
service := ParametersFromContext[*user.SearchUserService](c, user.SearchUserParamCtx{}) service := ParametersFromContext[*user.SearchUserService](c, user.SearchUserParamCtx{})
u, err := service.Search(c) u, err := service.Search(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
c.Abort()
return return
} }
@ -427,9 +372,7 @@ func UserSearch(c *gin.Context) {
func ListPublicShare(c *gin.Context) { func ListPublicShare(c *gin.Context) {
service := ParametersFromContext[*share.ListShareService](c, share.ListShareParamCtx{}) service := ParametersFromContext[*share.ListShareService](c, share.ListShareParamCtx{})
resp, err := service.ListInUserProfile(c, hashid.FromContext(c)) resp, err := service.ListInUserProfile(c, hashid.FromContext(c))
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
c.Abort()
return return
} }

@ -10,9 +10,7 @@ import (
func ListDavAccounts(c *gin.Context) { func ListDavAccounts(c *gin.Context) {
service := ParametersFromContext[*setting.ListDavAccountsService](c, setting.ListDavAccountParamCtx{}) service := ParametersFromContext[*setting.ListDavAccountsService](c, setting.ListDavAccountParamCtx{})
resp, err := service.List(c) resp, err := service.List(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
c.Abort()
return return
} }
@ -27,9 +25,7 @@ func ListDavAccounts(c *gin.Context) {
func CreateDAVAccounts(c *gin.Context) { func CreateDAVAccounts(c *gin.Context) {
service := ParametersFromContext[*setting.CreateDavAccountService](c, setting.CreateDavAccountParamCtx{}) service := ParametersFromContext[*setting.CreateDavAccountService](c, setting.CreateDavAccountParamCtx{})
resp, err := service.Create(c) resp, err := service.Create(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
c.Abort()
return return
} }
@ -42,9 +38,7 @@ func CreateDAVAccounts(c *gin.Context) {
func UpdateDAVAccounts(c *gin.Context) { func UpdateDAVAccounts(c *gin.Context) {
service := ParametersFromContext[*setting.CreateDavAccountService](c, setting.CreateDavAccountParamCtx{}) service := ParametersFromContext[*setting.CreateDavAccountService](c, setting.CreateDavAccountParamCtx{})
resp, err := service.Update(c) resp, err := service.Update(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
c.Abort()
return return
} }
@ -56,9 +50,7 @@ func UpdateDAVAccounts(c *gin.Context) {
// DeleteDAVAccounts deletes WebDAV accounts. // DeleteDAVAccounts deletes WebDAV accounts.
func DeleteDAVAccounts(c *gin.Context) { func DeleteDAVAccounts(c *gin.Context) {
err := setting.DeleteDavAccount(c) err := setting.DeleteDavAccount(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
c.Abort()
return return
} }

@ -11,9 +11,7 @@ import (
func ListTasks(c *gin.Context) { func ListTasks(c *gin.Context) {
service := ParametersFromContext[*explorer.ListTaskService](c, explorer.ListTaskParamCtx{}) service := ParametersFromContext[*explorer.ListTaskService](c, explorer.ListTaskParamCtx{})
resp, err := service.ListTasks(c) resp, err := service.ListTasks(c)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
c.Abort()
return return
} }
@ -27,9 +25,7 @@ func ListTasks(c *gin.Context) {
func GetTaskPhaseProgress(c *gin.Context) { func GetTaskPhaseProgress(c *gin.Context) {
taskId := hashid.FromContext(c) taskId := hashid.FromContext(c)
resp, err := explorer.TaskPhaseProgress(c, taskId) resp, err := explorer.TaskPhaseProgress(c, taskId)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
c.Abort()
return return
} }
@ -46,9 +42,7 @@ func SetDownloadTaskTarget(c *gin.Context) {
taskId := hashid.FromContext(c) taskId := hashid.FromContext(c)
service := ParametersFromContext[*explorer.SetDownloadFilesService](c, explorer.SetDownloadFilesParamCtx{}) service := ParametersFromContext[*explorer.SetDownloadFilesService](c, explorer.SetDownloadFilesParamCtx{})
err := service.SetDownloadFiles(c, taskId) err := service.SetDownloadFiles(c, taskId)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
c.Abort()
return return
} }
@ -58,9 +52,7 @@ func SetDownloadTaskTarget(c *gin.Context) {
func CancelDownloadTask(c *gin.Context) { func CancelDownloadTask(c *gin.Context) {
taskId := hashid.FromContext(c) taskId := hashid.FromContext(c)
err := explorer.CancelDownloadTask(c, taskId) err := explorer.CancelDownloadTask(c, taskId)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
c.Abort()
return return
} }
@ -71,9 +63,7 @@ func CancelDownloadTask(c *gin.Context) {
func CancelTask(c *gin.Context) { func CancelTask(c *gin.Context) {
taskId := hashid.FromContext(c) taskId := hashid.FromContext(c)
err := explorer.CancelTask(c, taskId) err := explorer.CancelTask(c, taskId)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
c.Abort()
return return
} }
@ -84,9 +74,7 @@ func CancelTask(c *gin.Context) {
func DeleteTask(c *gin.Context) { func DeleteTask(c *gin.Context) {
taskId := hashid.FromContext(c) taskId := hashid.FromContext(c)
err := explorer.DeleteTask(c, taskId) err := explorer.DeleteTask(c, taskId)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
c.Abort()
return return
} }
@ -97,9 +85,7 @@ func DeleteTask(c *gin.Context) {
func RetryTask(c *gin.Context) { func RetryTask(c *gin.Context) {
taskId := hashid.FromContext(c) taskId := hashid.FromContext(c)
err := explorer.RetryTask(c, taskId) err := explorer.RetryTask(c, taskId)
if err != nil { if respondErr(c, err) {
c.JSON(200, serializer.Err(c, err))
c.Abort()
return return
} }

Loading…
Cancel
Save