From efebb824ac9fc6717d89daa0542f03534451a532 Mon Sep 17 00:00:00 2001 From: 6543 <6543@obermui.de> Date: Fri, 25 Sep 2020 00:36:56 +0200 Subject: [PATCH] API: GetReleaseByID return 404 if not found (#12933) * API: GetReleaseByID return 404 if not found * update swagger docs --- routers/api/v1/repo/release.go | 14 ++++++++++++-- templates/swagger/v1_json.tmpl | 12 ++++++++++++ 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/routers/api/v1/repo/release.go b/routers/api/v1/repo/release.go index e7cc1e867..c2ed1fe02 100644 --- a/routers/api/v1/repo/release.go +++ b/routers/api/v1/repo/release.go @@ -41,17 +41,21 @@ func GetRelease(ctx *context.APIContext) { // responses: // "200": // "$ref": "#/responses/Release" + // "404": + // "$ref": "#/responses/notFound" id := ctx.ParamsInt64(":id") release, err := models.GetReleaseByID(id) - if err != nil { + if err != nil && !models.IsErrReleaseNotExist(err) { ctx.Error(http.StatusInternalServerError, "GetReleaseByID", err) return } - if release.RepoID != ctx.Repo.Repository.ID { + if err != nil && models.IsErrReleaseNotExist(err) || + release.IsTag || release.RepoID != ctx.Repo.Repository.ID { ctx.NotFound() return } + if err := release.LoadAttributes(); err != nil { ctx.Error(http.StatusInternalServerError, "LoadAttributes", err) return @@ -145,6 +149,8 @@ func CreateRelease(ctx *context.APIContext, form api.CreateReleaseOption) { // responses: // "201": // "$ref": "#/responses/Release" + // "404": + // "$ref": "#/responses/notFound" // "409": // "$ref": "#/responses/error" @@ -235,6 +241,8 @@ func EditRelease(ctx *context.APIContext, form api.EditReleaseOption) { // responses: // "200": // "$ref": "#/responses/Release" + // "404": + // "$ref": "#/responses/notFound" id := ctx.ParamsInt64(":id") rel, err := models.GetReleaseByID(id) @@ -308,6 +316,8 @@ func DeleteRelease(ctx *context.APIContext) { // responses: // "204": // "$ref": "#/responses/empty" + // "404": + // "$ref": "#/responses/notFound" id := ctx.ParamsInt64(":id") rel, err := models.GetReleaseByID(id) diff --git a/templates/swagger/v1_json.tmpl b/templates/swagger/v1_json.tmpl index 6c0d8c1b3..c1847f044 100644 --- a/templates/swagger/v1_json.tmpl +++ b/templates/swagger/v1_json.tmpl @@ -7563,6 +7563,9 @@ "201": { "$ref": "#/responses/Release" }, + "404": { + "$ref": "#/responses/notFound" + }, "409": { "$ref": "#/responses/error" } @@ -7606,6 +7609,9 @@ "responses": { "200": { "$ref": "#/responses/Release" + }, + "404": { + "$ref": "#/responses/notFound" } } }, @@ -7642,6 +7648,9 @@ "responses": { "204": { "$ref": "#/responses/empty" + }, + "404": { + "$ref": "#/responses/notFound" } } }, @@ -7691,6 +7700,9 @@ "responses": { "200": { "$ref": "#/responses/Release" + }, + "404": { + "$ref": "#/responses/notFound" } } }