diff --git a/cmd/server/docs/docs.go b/cmd/server/docs/docs.go index d9c9d0b7d..55ea6e2e7 100644 --- a/cmd/server/docs/docs.go +++ b/cmd/server/docs/docs.go @@ -605,7 +605,7 @@ const docTemplate = `{ }, "/healthz": { "get": { - "description": "If everything is fine, just a 200 will be returned, a 500 signals server state is unhealthy.", + "description": "If everything is fine, just a 204 will be returned, a 500 signals server state is unhealthy.", "produces": [ "text/plain" ], @@ -614,8 +614,8 @@ const docTemplate = `{ ], "summary": "Health information", "responses": { - "200": { - "description": "OK" + "204": { + "description": "No Content" }, "500": { "description": "Internal Server Error" @@ -869,7 +869,7 @@ const docTemplate = `{ "delete": { "description": "Deletes the given org. Requires admin rights.", "produces": [ - "application/json" + "text/plain" ], "tags": [ "Orgs" @@ -894,10 +894,7 @@ const docTemplate = `{ ], "responses": { "204": { - "description": "No Content", - "schema": { - "$ref": "#/definitions/Org" - } + "description": "No Content" } } } @@ -1838,8 +1835,8 @@ const docTemplate = `{ } ], "responses": { - "200": { - "description": "OK" + "204": { + "description": "No Content" } } }, @@ -1928,8 +1925,8 @@ const docTemplate = `{ } ], "responses": { - "200": { - "description": "OK" + "204": { + "description": "No Content" } } } @@ -2667,8 +2664,8 @@ const docTemplate = `{ } ], "responses": { - "200": { - "description": "OK" + "204": { + "description": "No Content" } } }, @@ -3307,7 +3304,7 @@ const docTemplate = `{ "tags": [ "User" ], - "summary": "Return the token of the current user as stringÂȘ", + "summary": "Return the token of the current user as string", "parameters": [ { "type": "string", @@ -3473,7 +3470,7 @@ const docTemplate = `{ "delete": { "description": "Deletes the given user. Requires admin rights.", "produces": [ - "application/json" + "text/plain" ], "tags": [ "Users" @@ -3497,11 +3494,8 @@ const docTemplate = `{ } ], "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/User" - } + "204": { + "description": "No Content" } } }, diff --git a/server/api/agent.go b/server/api/agent.go index 30f366398..1e4a63bd5 100644 --- a/server/api/agent.go +++ b/server/api/agent.go @@ -65,7 +65,7 @@ func GetAgent(c *gin.Context) { agent, err := store.FromContext(c).AgentFind(agentID) if err != nil { - handleDbGetError(c, err) + handleDbError(c, err) return } c.JSON(http.StatusOK, agent) @@ -89,7 +89,7 @@ func GetAgentTasks(c *gin.Context) { agent, err := store.FromContext(c).AgentFind(agentID) if err != nil { - c.String(http.StatusNotFound, "Cannot find agent. %s", err) + handleDbError(c, err) return } @@ -132,7 +132,7 @@ func PatchAgent(c *gin.Context) { agent, err := _store.AgentFind(agentID) if err != nil { - handleDbGetError(c, err) + handleDbError(c, err) return } agent.Name = in.Name @@ -201,12 +201,12 @@ func DeleteAgent(c *gin.Context) { agent, err := _store.AgentFind(agentID) if err != nil { - handleDbGetError(c, err) + handleDbError(c, err) return } if err = _store.AgentDelete(agent); err != nil { c.String(http.StatusInternalServerError, "Error deleting user. %s", err) return } - c.String(http.StatusNoContent, "") + c.Status(http.StatusNoContent) } diff --git a/server/api/badge.go b/server/api/badge.go index e5c04e7ac..41f0b4894 100644 --- a/server/api/badge.go +++ b/server/api/badge.go @@ -62,11 +62,7 @@ func GetBadge(c *gin.Context) { } if err != nil { - if errors.Is(err, types.RecordNotExist) { - c.AbortWithStatus(http.StatusNotFound) - return - } - _ = c.AbortWithError(http.StatusInternalServerError, err) + handleDbError(c, err) return } @@ -107,7 +103,7 @@ func GetCC(c *gin.Context) { _store := store.FromContext(c) repo, err := _store.GetRepoName(c.Param("owner") + "/" + c.Param("name")) if err != nil { - handleDbGetError(c, err) + handleDbError(c, err) return } diff --git a/server/api/cron.go b/server/api/cron.go index cedd14ff0..d440825b0 100644 --- a/server/api/cron.go +++ b/server/api/cron.go @@ -20,6 +20,7 @@ import ( "time" "github.com/gin-gonic/gin" + "github.com/woodpecker-ci/woodpecker/server" cronScheduler "github.com/woodpecker-ci/woodpecker/server/cron" "github.com/woodpecker-ci/woodpecker/server/model" @@ -48,7 +49,7 @@ func GetCron(c *gin.Context) { cron, err := store.FromContext(c).CronFind(repo, id) if err != nil { - handleDbGetError(c, err) + handleDbError(c, err) return } c.JSON(http.StatusOK, cron) @@ -75,7 +76,7 @@ func RunCron(c *gin.Context) { cron, err := _store.CronFind(repo, id) if err != nil { - handleDbGetError(c, err) + handleDbError(c, err) return } @@ -182,7 +183,7 @@ func PatchCron(c *gin.Context) { cron, err := _store.CronFind(repo, id) if err != nil { - handleDbGetError(c, err) + handleDbError(c, err) return } if in.Branch != "" { @@ -245,7 +246,7 @@ func GetCronList(c *gin.Context) { // @Summary Delete a cron job by id // @Router /repos/{repo_id}/cron/{cron} [delete] // @Produce plain -// @Success 200 +// @Success 204 // @Tags Repository cron jobs // @Param Authorization header string true "Insert your personal access token" default(Bearer ) // @Param repo_id path int true "the repository id" @@ -258,8 +259,8 @@ func DeleteCron(c *gin.Context) { return } if err := store.FromContext(c).CronDelete(repo, id); err != nil { - handleDbGetError(c, err) + handleDbError(c, err) return } - c.String(http.StatusNoContent, "") + c.Status(http.StatusNoContent) } diff --git a/server/api/global_secret.go b/server/api/global_secret.go index 77f1e212a..b51ab43ea 100644 --- a/server/api/global_secret.go +++ b/server/api/global_secret.go @@ -18,6 +18,7 @@ import ( "net/http" "github.com/gin-gonic/gin" + "github.com/woodpecker-ci/woodpecker/server/router/middleware/session" "github.com/woodpecker-ci/woodpecker/server" @@ -61,7 +62,7 @@ func GetGlobalSecret(c *gin.Context) { name := c.Param("secret") secret, err := server.Config.Services.Secrets.GlobalSecretFind(name) if err != nil { - handleDbGetError(c, err) + handleDbError(c, err) return } c.JSON(http.StatusOK, secret.Copy()) @@ -122,7 +123,7 @@ func PatchGlobalSecret(c *gin.Context) { secret, err := server.Config.Services.Secrets.GlobalSecretFind(name) if err != nil { - handleDbGetError(c, err) + handleDbError(c, err) return } if in.Value != "" { @@ -159,8 +160,8 @@ func PatchGlobalSecret(c *gin.Context) { func DeleteGlobalSecret(c *gin.Context) { name := c.Param("secret") if err := server.Config.Services.Secrets.GlobalSecretDelete(name); err != nil { - handleDbGetError(c, err) + handleDbError(c, err) return } - c.String(http.StatusNoContent, "") + c.Status(http.StatusNoContent) } diff --git a/server/api/helper.go b/server/api/helper.go index e51e2a3dc..5103b67ed 100644 --- a/server/api/helper.go +++ b/server/api/helper.go @@ -35,13 +35,13 @@ func handlePipelineErr(c *gin.Context, err error) { } else if errors.Is(err, &pipeline.ErrBadRequest{}) { c.String(http.StatusBadRequest, "%s", err) } else if errors.Is(err, &pipeline.ErrFiltered{}) { - c.String(http.StatusNoContent, "%s", err) + c.Status(http.StatusNoContent) } else { _ = c.AbortWithError(http.StatusInternalServerError, err) } } -func handleDbGetError(c *gin.Context, err error) { +func handleDbError(c *gin.Context, err error) { if errors.Is(err, types.RecordNotExist) { c.AbortWithStatus(http.StatusNotFound) return diff --git a/server/api/hook.go b/server/api/hook.go index 1f664e3af..b2fab9725 100644 --- a/server/api/hook.go +++ b/server/api/hook.go @@ -143,23 +143,20 @@ func PostHook(c *gin.Context) { repo, err := _store.GetRepoNameFallback(tmpRepo.ForgeRemoteID, tmpRepo.FullName) if err != nil { - msg := fmt.Sprintf("failure to get repo %s from store", tmpRepo.FullName) - log.Error().Err(err).Msg(msg) - c.String(http.StatusNotFound, msg) + log.Error().Err(err).Msgf("failure to get repo %s from store", tmpRepo.FullName) + handleDbError(c, err) return } if !repo.IsActive { - msg := fmt.Sprintf("ignoring hook: repo %s is inactive", tmpRepo.FullName) - log.Debug().Msg(msg) - c.String(http.StatusNoContent, msg) + log.Debug().Msgf("ignoring hook: repo %s is inactive", tmpRepo.FullName) + c.Status(http.StatusNoContent) return } oldFullName := repo.FullName if repo.UserID == 0 { - msg := fmt.Sprintf("ignoring hook. repo %s has no owner.", repo.FullName) - log.Warn().Msg(msg) - c.String(http.StatusNoContent, msg) + log.Warn().Msgf("ignoring hook. repo %s has no owner.", repo.FullName) + c.Status(http.StatusNoContent) return } @@ -220,9 +217,8 @@ func PostHook(c *gin.Context) { // if tmpPipeline.Event == model.EventPull && !repo.AllowPull { - msg := "ignoring hook: pull requests are disabled for this repo in woodpecker" - log.Debug().Str("repo", repo.FullName).Msg(msg) - c.String(http.StatusNoContent, msg) + log.Debug().Str("repo", repo.FullName).Msg("ignoring hook: pull requests are disabled for this repo in woodpecker") + c.Status(http.StatusNoContent) return } diff --git a/server/api/login.go b/server/api/login.go index 3a018188a..c61f299b8 100644 --- a/server/api/login.go +++ b/server/api/login.go @@ -210,7 +210,7 @@ func GetLoginToken(c *gin.Context) { user, err := _store.GetUserLogin(login) if err != nil { - _ = c.AbortWithError(http.StatusNotFound, err) + handleDbError(c, err) return } diff --git a/server/api/metrics/prometheus.go b/server/api/metrics/prometheus.go index 2d93bbc87..25a49d7a7 100644 --- a/server/api/metrics/prometheus.go +++ b/server/api/metrics/prometheus.go @@ -43,14 +43,14 @@ func PromHandler() gin.HandlerFunc { header := c.Request.Header.Get("Authorization") if header == "" { - c.String(401, errInvalidToken.Error()) + c.String(http.StatusUnauthorized, errInvalidToken.Error()) return } bearer := fmt.Sprintf("Bearer %s", token) if header != bearer { - c.String(401, errInvalidToken.Error()) + c.String(http.StatusForbidden, errInvalidToken.Error()) return } diff --git a/server/api/org.go b/server/api/org.go index e84dbf262..b2feba89e 100644 --- a/server/api/org.go +++ b/server/api/org.go @@ -15,19 +15,18 @@ package api import ( - "errors" "net/http" "strconv" "strings" "github.com/rs/zerolog/log" + + "github.com/gin-gonic/gin" + "github.com/woodpecker-ci/woodpecker/server" "github.com/woodpecker-ci/woodpecker/server/model" "github.com/woodpecker-ci/woodpecker/server/router/middleware/session" "github.com/woodpecker-ci/woodpecker/server/store" - "github.com/woodpecker-ci/woodpecker/server/store/types" - - "github.com/gin-gonic/gin" ) // GetOrg @@ -50,11 +49,7 @@ func GetOrg(c *gin.Context) { org, err := _store.OrgGet(orgID) if err != nil { - if errors.Is(err, types.RecordNotExist) { - c.AbortWithStatus(http.StatusNotFound) - return - } - _ = c.AbortWithError(http.StatusInternalServerError, err) + handleDbError(c, err) return } @@ -127,12 +122,7 @@ func LookupOrg(c *gin.Context) { org, err := _store.OrgFindByName(orgFullName) if err != nil { - if errors.Is(err, types.RecordNotExist) { - c.AbortWithStatus(http.StatusNotFound) - return - } - - _ = c.AbortWithError(http.StatusInternalServerError, err) + handleDbError(c, err) return } @@ -151,7 +141,7 @@ func LookupOrg(c *gin.Context) { perm, err := server.Config.Services.Membership.Get(c, user, org.Name) if err != nil { log.Error().Msgf("Failed to check membership: %v", err) - c.String(http.StatusInternalServerError, http.StatusText(http.StatusInternalServerError)) + c.Status(http.StatusInternalServerError) return } diff --git a/server/api/org_secret.go b/server/api/org_secret.go index dd7564403..ebb130c5e 100644 --- a/server/api/org_secret.go +++ b/server/api/org_secret.go @@ -19,6 +19,7 @@ import ( "strconv" "github.com/gin-gonic/gin" + "github.com/woodpecker-ci/woodpecker/server/router/middleware/session" "github.com/woodpecker-ci/woodpecker/server" @@ -46,7 +47,7 @@ func GetOrgSecret(c *gin.Context) { secret, err := server.Config.Services.Secrets.OrgSecretFind(orgID, name) if err != nil { - handleDbGetError(c, err) + handleDbError(c, err) return } c.JSON(http.StatusOK, secret.Copy()) @@ -152,7 +153,7 @@ func PatchOrgSecret(c *gin.Context) { secret, err := server.Config.Services.Secrets.OrgSecretFind(orgID, name) if err != nil { - handleDbGetError(c, err) + handleDbError(c, err) return } if in.Value != "" { @@ -196,8 +197,8 @@ func DeleteOrgSecret(c *gin.Context) { } if err := server.Config.Services.Secrets.OrgSecretDelete(orgID, name); err != nil { - handleDbGetError(c, err) + handleDbError(c, err) return } - c.String(http.StatusNoContent, "") + c.Status(http.StatusNoContent) } diff --git a/server/api/orgs.go b/server/api/orgs.go index 2e830acf2..fc5ebcce8 100644 --- a/server/api/orgs.go +++ b/server/api/orgs.go @@ -38,10 +38,10 @@ import ( func GetOrgs(c *gin.Context) { orgs, err := store.FromContext(c).OrgList(session.Pagination(c)) if err != nil { - c.String(500, "Error getting user list. %s", err) + c.String(http.StatusInternalServerError, "Error getting user list. %s", err) return } - c.JSON(200, orgs) + c.JSON(http.StatusOK, orgs) } // DeleteOrg @@ -49,8 +49,8 @@ func GetOrgs(c *gin.Context) { // @Summary Delete an org // @Description Deletes the given org. Requires admin rights. // @Router /orgs/{id} [delete] -// @Produce json -// @Success 204 {object} Org +// @Produce plain +// @Success 204 // @Tags Orgs // @Param Authorization header string true "Insert your personal access token" default(Bearer ) // @Param id path string true "the org's id" @@ -65,8 +65,9 @@ func DeleteOrg(c *gin.Context) { err = _store.OrgDelete(orgID) if err != nil { - c.String(http.StatusInternalServerError, "Error deleting org %d. %s", orgID, err) + handleDbError(c, err) + return } - c.String(http.StatusNoContent, "") + c.Status(http.StatusNoContent) } diff --git a/server/api/pipeline.go b/server/api/pipeline.go index 77a8eaf19..a4cdb6410 100644 --- a/server/api/pipeline.go +++ b/server/api/pipeline.go @@ -33,7 +33,6 @@ import ( "github.com/woodpecker-ci/woodpecker/server/pipeline" "github.com/woodpecker-ci/woodpecker/server/router/middleware/session" "github.com/woodpecker-ci/woodpecker/server/store" - "github.com/woodpecker-ci/woodpecker/server/store/types" ) // CreatePipeline @@ -109,10 +108,6 @@ func GetPipelines(c *gin.Context) { pipelines, err := store.FromContext(c).GetPipelineList(repo, session.Pagination(c)) if err != nil { - if errors.Is(err, types.RecordNotExist) { - c.AbortWithStatus(http.StatusNotFound) - return - } _ = c.AbortWithError(http.StatusInternalServerError, err) return } @@ -145,11 +140,7 @@ func GetPipeline(c *gin.Context) { pl, err := _store.GetPipelineNumber(repo, num) if err != nil { - if errors.Is(err, types.RecordNotExist) { - c.AbortWithStatus(http.StatusNotFound) - return - } - _ = c.AbortWithError(http.StatusInternalServerError, err) + handleDbError(c, err) return } if pl.Workflows, err = _store.WorkflowGetTree(pl); err != nil { @@ -167,7 +158,7 @@ func GetPipelineLast(c *gin.Context) { pl, err := _store.GetPipelineLast(repo, branch) if err != nil { - handleDbGetError(c, err) + handleDbError(c, err) return } @@ -203,7 +194,7 @@ func GetStepLogs(c *gin.Context) { pl, err := _store.GetPipelineNumber(repo, num) if err != nil { - handleDbGetError(c, err) + handleDbError(c, err) return } @@ -215,7 +206,7 @@ func GetStepLogs(c *gin.Context) { step, err := _store.StepLoad(stepID) if err != nil { - handleDbGetError(c, err) + handleDbError(c, err) return } @@ -227,7 +218,7 @@ func GetStepLogs(c *gin.Context) { logs, err := _store.LogFind(step) if err != nil { - handleDbGetError(c, err) + handleDbError(c, err) return } @@ -255,7 +246,7 @@ func GetPipelineConfig(c *gin.Context) { pl, err := _store.GetPipelineNumber(repo, num) if err != nil { - handleDbGetError(c, err) + handleDbError(c, err) return } @@ -286,7 +277,7 @@ func CancelPipeline(c *gin.Context) { pl, err := _store.GetPipelineNumber(repo, num) if err != nil { - handleDbGetError(c, err) + handleDbError(c, err) return } @@ -317,7 +308,7 @@ func PostApproval(c *gin.Context) { pl, err := _store.GetPipelineNumber(repo, num) if err != nil { - handleDbGetError(c, err) + handleDbError(c, err) return } @@ -349,7 +340,7 @@ func PostDecline(c *gin.Context) { pl, err := _store.GetPipelineNumber(repo, num) if err != nil { - c.String(http.StatusNotFound, "%v", err) + handleDbError(c, err) return } @@ -404,25 +395,17 @@ func PostPipeline(c *gin.Context) { user, err := _store.GetUser(repo.UserID) if err != nil { - if errors.Is(err, types.RecordNotExist) { - c.AbortWithStatus(http.StatusNotFound) - return - } - _ = c.AbortWithError(http.StatusInternalServerError, err) + handleDbError(c, err) return } pl, err := _store.GetPipelineNumber(repo, num) if err != nil { - if errors.Is(err, types.RecordNotExist) { - c.AbortWithStatus(http.StatusNotFound) - return - } - _ = c.AbortWithError(http.StatusInternalServerError, err) + handleDbError(c, err) return } - // refresh the token to make sure, pipeline.ReStart can still obtain the pipeline config if necessary again + // refresh the token to make sure, pipeline.Restart can still obtain the pipeline config if necessary again refreshUserToken(c, user) // make Deploy overridable @@ -472,7 +455,7 @@ func PostPipeline(c *gin.Context) { // @Summary Deletes log // @Router /repos/{repo_id}/logs/{number} [post] // @Produce plain -// @Success 200 +// @Success 204 // @Tags Pipeline logs // @Param Authorization header string true "Insert your personal access token" default(Bearer ) // @Param repo_id path int true "the repository id" @@ -485,13 +468,13 @@ func DeletePipelineLogs(c *gin.Context) { pl, err := _store.GetPipelineNumber(repo, num) if err != nil { - handleDbGetError(c, err) + handleDbError(c, err) return } steps, err := _store.StepList(pl) if err != nil { - _ = c.AbortWithError(http.StatusNotFound, err) + _ = c.AbortWithError(http.StatusInternalServerError, err) return } @@ -511,5 +494,5 @@ func DeletePipelineLogs(c *gin.Context) { return } - c.String(http.StatusNoContent, "") + c.Status(http.StatusNoContent) } diff --git a/server/api/registry.go b/server/api/registry.go index 055e161dc..434dcf7fa 100644 --- a/server/api/registry.go +++ b/server/api/registry.go @@ -41,7 +41,7 @@ func GetRegistry(c *gin.Context) { ) registry, err := server.Config.Services.Registries.RegistryFind(repo, name) if err != nil { - handleDbGetError(c, err) + handleDbError(c, err) return } c.JSON(200, registry.Copy()) @@ -110,7 +110,7 @@ func PatchRegistry(c *gin.Context) { registry, err := server.Config.Services.Registries.RegistryFind(repo, name) if err != nil { - handleDbGetError(c, err) + handleDbError(c, err) return } if in.Username != "" { @@ -168,7 +168,7 @@ func GetRegistryList(c *gin.Context) { // @Summary Delete a named registry // @Router /repos/{repo_id}/registry/{registry} [delete] // @Produce plain -// @Success 200 +// @Success 204 // @Tags Repository registries // @Param Authorization header string true "Insert your personal access token" default(Bearer ) // @Param repo_id path int true "the repository id" @@ -180,8 +180,8 @@ func DeleteRegistry(c *gin.Context) { ) err := server.Config.Services.Registries.RegistryDelete(repo, name) if err != nil { - handleDbGetError(c, err) + handleDbError(c, err) return } - c.String(http.StatusNoContent, "") + c.Status(http.StatusNoContent) } diff --git a/server/api/repo.go b/server/api/repo.go index f92d9d2a3..0bf0ff47d 100644 --- a/server/api/repo.go +++ b/server/api/repo.go @@ -198,7 +198,7 @@ func PatchRepo(c *gin.Context) { return } if in.IsTrusted != nil && *in.IsTrusted != repo.IsTrusted && !user.Admin { - log.Trace().Msgf("user '%s' wants to make repo trusted without being an instance admin ", user.Login) + log.Trace().Msgf("user '%s' wants to make repo trusted without being an instance admin", user.Login) c.String(http.StatusForbidden, "Insufficient privileges") return } @@ -384,7 +384,7 @@ func DeleteRepo(c *gin.Context) { if remove { if err := _store.DeleteRepo(repo); err != nil { - _ = c.AbortWithError(http.StatusInternalServerError, err) + handleDbError(c, err) return } } @@ -464,7 +464,7 @@ func RepairRepo(c *gin.Context) { return } - c.Writer.WriteHeader(http.StatusOK) + c.Status(http.StatusOK) } // MoveRepo @@ -485,7 +485,7 @@ func MoveRepo(c *gin.Context) { to, exists := c.GetQuery("to") if !exists { - err := fmt.Errorf("Missing required to query value") + err := fmt.Errorf("missing required to query value") _ = c.AbortWithError(http.StatusInternalServerError, err) return } @@ -548,5 +548,5 @@ func MoveRepo(c *gin.Context) { c.String(http.StatusInternalServerError, err.Error()) return } - c.Writer.WriteHeader(http.StatusOK) + c.Status(http.StatusOK) } diff --git a/server/api/repo_secret.go b/server/api/repo_secret.go index 72228d114..21e1df28f 100644 --- a/server/api/repo_secret.go +++ b/server/api/repo_secret.go @@ -42,7 +42,7 @@ func GetSecret(c *gin.Context) { ) secret, err := server.Config.Services.Secrets.SecretFind(repo, name) if err != nil { - handleDbGetError(c, err) + handleDbError(c, err) return } c.JSON(http.StatusOK, secret.Copy()) @@ -111,7 +111,7 @@ func PatchSecret(c *gin.Context) { secret, err := server.Config.Services.Secrets.SecretFind(repo, name) if err != nil { - handleDbGetError(c, err) + handleDbError(c, err) return } if in.Value != "" { @@ -178,8 +178,8 @@ func DeleteSecret(c *gin.Context) { name = c.Param("secret") ) if err := server.Config.Services.Secrets.SecretDelete(repo, name); err != nil { - handleDbGetError(c, err) + handleDbError(c, err) return } - c.String(http.StatusNoContent, "") + c.Status(http.StatusNoContent) } diff --git a/server/api/user.go b/server/api/user.go index a15739252..5e6939fa8 100644 --- a/server/api/user.go +++ b/server/api/user.go @@ -138,7 +138,7 @@ func GetRepos(c *gin.Context) { // PostToken // -// @Summary Return the token of the current user as stringÂȘ +// @Summary Return the token of the current user as string // @Router /user/token [post] // @Produce plain // @Success 200 diff --git a/server/api/users.go b/server/api/users.go index f33157919..95a418063 100644 --- a/server/api/users.go +++ b/server/api/users.go @@ -40,10 +40,10 @@ import ( func GetUsers(c *gin.Context) { users, err := store.FromContext(c).GetUserList(session.Pagination(c)) if err != nil { - c.String(500, "Error getting user list. %s", err) + c.String(http.StatusInternalServerError, "Error getting user list. %s", err) return } - c.JSON(200, users) + c.JSON(http.StatusOK, users) } // GetUser @@ -59,10 +59,10 @@ func GetUsers(c *gin.Context) { func GetUser(c *gin.Context) { user, err := store.FromContext(c).GetUserLogin(c.Param("login")) if err != nil { - handleDbGetError(c, err) + handleDbError(c, err) return } - c.JSON(200, user) + c.JSON(http.StatusOK, user) } // PatchUser @@ -89,7 +89,7 @@ func PatchUser(c *gin.Context) { user, err := _store.GetUserLogin(c.Param("login")) if err != nil { - handleDbGetError(c, err) + handleDbError(c, err) return } @@ -149,8 +149,8 @@ func PostUser(c *gin.Context) { // @Summary Delete a user // @Description Deletes the given user. Requires admin rights. // @Router /users/{login} [delete] -// @Produce json -// @Success 200 {object} User +// @Produce plain +// @Success 204 // @Tags Users // @Param Authorization header string true "Insert your personal access token" default(Bearer ) // @Param login path string true "the user's login name" @@ -159,12 +159,12 @@ func DeleteUser(c *gin.Context) { user, err := _store.GetUserLogin(c.Param("login")) if err != nil { - c.String(404, "Cannot find user. %s", err) + handleDbError(c, err) return } if err = _store.DeleteUser(user); err != nil { - c.String(500, "Error deleting user. %s", err) + handleDbError(c, err) return } - c.String(200, "") + c.Status(http.StatusNoContent) } diff --git a/server/api/z.go b/server/api/z.go index 181b62174..3ec0f92eb 100644 --- a/server/api/z.go +++ b/server/api/z.go @@ -28,10 +28,10 @@ import ( // Health // // @Summary Health information -// @Description If everything is fine, just a 200 will be returned, a 500 signals server state is unhealthy. +// @Description If everything is fine, just a 204 will be returned, a 500 signals server state is unhealthy. // @Router /healthz [get] // @Produce plain -// @Success 200 +// @Success 204 // @Failure 500 // @Tags System func Health(c *gin.Context) { @@ -39,7 +39,7 @@ func Health(c *gin.Context) { c.String(http.StatusInternalServerError, err.Error()) return } - c.String(http.StatusOK, "") + c.Status(http.StatusNoContent) } // Version diff --git a/server/store/datastore/helper.go b/server/store/datastore/helper.go index c962b8409..cf16e9c46 100644 --- a/server/store/datastore/helper.go +++ b/server/store/datastore/helper.go @@ -28,7 +28,7 @@ import ( // wrapGet return error if err not nil or if requested entry do not exist func wrapGet(exist bool, err error) error { if !exist { - err = types.RecordNotExist + return types.RecordNotExist } if err != nil { // we only ask for the function's name if needed, as it's not as preformatted as to just execute it @@ -41,7 +41,7 @@ func wrapGet(exist bool, err error) error { // wrapDelete return error if err not nil or if requested entry do not exist func wrapDelete(c int64, err error) error { if c == 0 { - err = types.RecordNotExist + return types.RecordNotExist } if err != nil { // we only ask for the function's name if needed, as it's not as preformatted as to just execute it diff --git a/server/store/datastore/pipeline.go b/server/store/datastore/pipeline.go index 332308b8b..d4b8f7617 100644 --- a/server/store/datastore/pipeline.go +++ b/server/store/datastore/pipeline.go @@ -156,6 +156,5 @@ func deletePipeline(sess *xorm.Session, pipelineID int64) error { if _, err := sess.Where("pipeline_id = ?", pipelineID).Delete(new(model.PipelineConfig)); err != nil { return err } - _, err := sess.ID(pipelineID).Delete(new(model.Pipeline)) - return err + return wrapDelete(sess.ID(pipelineID).Delete(new(model.Pipeline))) } diff --git a/server/store/datastore/registry.go b/server/store/datastore/registry.go index b8fd719d3..caac558bb 100644 --- a/server/store/datastore/registry.go +++ b/server/store/datastore/registry.go @@ -48,6 +48,5 @@ func (s storage) RegistryDelete(repo *model.Repo, addr string) error { if err != nil { return err } - _, err = s.engine.ID(registry.ID).Delete(new(model.Registry)) - return err + return wrapDelete(s.engine.ID(registry.ID).Delete(new(model.Registry))) } diff --git a/server/store/datastore/repo.go b/server/store/datastore/repo.go index bc1a59e68..6c4991ca8 100644 --- a/server/store/datastore/repo.go +++ b/server/store/datastore/repo.go @@ -131,7 +131,7 @@ func (s storage) DeleteRepo(repo *model.Repo) error { } } - if _, err := sess.ID(repo.ID).Delete(new(model.Repo)); err != nil { + if err := wrapDelete(sess.ID(repo.ID).Delete(new(model.Repo))); err != nil { return err } diff --git a/server/store/datastore/step.go b/server/store/datastore/step.go index 6bb611f88..6ef3e0bfb 100644 --- a/server/store/datastore/step.go +++ b/server/store/datastore/step.go @@ -105,6 +105,5 @@ func deleteStep(sess *xorm.Session, stepID int64) error { if _, err := sess.Where("step_id = ?", stepID).Delete(new(model.LogEntry)); err != nil { return err } - _, err := sess.ID(stepID).Delete(new(model.Step)) - return err + return wrapDelete(sess.ID(stepID).Delete(new(model.Step))) } diff --git a/server/store/datastore/user.go b/server/store/datastore/user.go index a3efcd40c..115ed5b0c 100644 --- a/server/store/datastore/user.go +++ b/server/store/datastore/user.go @@ -15,8 +15,9 @@ package datastore import ( - "github.com/woodpecker-ci/woodpecker/server/model" "xorm.io/xorm" + + "github.com/woodpecker-ci/woodpecker/server/model" ) func (s storage) GetUser(id int64) (*model.User, error) {