1
1
mirror of https://github.com/go-gitea/gitea synced 2025-07-22 18:28:37 +00:00

Updates to API 404 responses (#6077)

This commit is contained in:
John Olheiser
2019-03-18 21:29:43 -05:00
committed by techknowlogick
parent d10a668ffc
commit cac9e6e760
30 changed files with 120 additions and 91 deletions

View File

@@ -42,13 +42,13 @@ func GetBranch(ctx *context.APIContext) {
// if TreePath != "", then URL contained extra slashes
// (i.e. "master/subbranch" instead of "master"), so branch does
// not exist
ctx.Status(404)
ctx.NotFound()
return
}
branch, err := ctx.Repo.Repository.GetBranch(ctx.Repo.BranchName)
if err != nil {
if models.IsErrBranchNotExist(err) {
ctx.Error(404, "GetBranch", err)
ctx.NotFound(err)
} else {
ctx.Error(500, "GetBranch", err)
}

View File

@@ -92,7 +92,7 @@ func IsCollaborator(ctx *context.APIContext) {
if isColab {
ctx.Status(204)
} else {
ctx.Status(404)
ctx.NotFound()
}
}

View File

@@ -40,14 +40,14 @@ func GetRawFile(ctx *context.APIContext) {
// 200:
// description: success
if ctx.Repo.Repository.IsEmpty {
ctx.Status(404)
ctx.NotFound()
return
}
blob, err := ctx.Repo.Commit.GetBlobByPath(ctx.Repo.TreePath)
if err != nil {
if git.IsErrNotExist(err) {
ctx.Status(404)
ctx.NotFound()
} else {
ctx.Error(500, "GetBlobByPath", err)
}
@@ -124,7 +124,7 @@ func GetEditorconfig(ctx *context.APIContext) {
ec, err := ctx.Repo.GetEditorconfig()
if err != nil {
if git.IsErrNotExist(err) {
ctx.Error(404, "GetEditorconfig", err)
ctx.NotFound(err)
} else {
ctx.Error(500, "GetEditorconfig", err)
}
@@ -134,7 +134,7 @@ func GetEditorconfig(ctx *context.APIContext) {
fileName := ctx.Params("filename")
def := ec.GetDefinitionForFilename(fileName)
if def == nil {
ctx.Error(404, "GetDefinitionForFilename", err)
ctx.NotFound(err)
return
}
ctx.JSON(200, def)

View File

@@ -89,7 +89,7 @@ func getGitRefsInternal(ctx *context.APIContext, filter string) {
}
if len(refs) == 0 {
ctx.Status(404)
ctx.NotFound()
return
}

View File

@@ -239,7 +239,7 @@ func DeleteHook(ctx *context.APIContext) {
// "$ref": "#/responses/notFound"
if err := models.DeleteWebhookByRepoID(ctx.Repo.Repository.ID, ctx.ParamsInt64(":id")); err != nil {
if models.IsErrWebhookNotExist(err) {
ctx.Status(404)
ctx.NotFound()
} else {
ctx.Error(500, "DeleteWebhookByRepoID", err)
}

View File

@@ -146,7 +146,7 @@ func GetIssue(ctx *context.APIContext) {
issue, err := models.GetIssueWithAttrsByIndex(ctx.Repo.Repository.ID, ctx.ParamsInt64(":index"))
if err != nil {
if models.IsErrIssueNotExist(err) {
ctx.Status(404)
ctx.NotFound()
} else {
ctx.Error(500, "GetIssueByIndex", err)
}
@@ -283,7 +283,7 @@ func EditIssue(ctx *context.APIContext, form api.EditIssueOption) {
issue, err := models.GetIssueByIndex(ctx.Repo.Repository.ID, ctx.ParamsInt64(":index"))
if err != nil {
if models.IsErrIssueNotExist(err) {
ctx.Status(404)
ctx.NotFound()
} else {
ctx.Error(500, "GetIssueByIndex", err)
}
@@ -412,7 +412,7 @@ func UpdateIssueDeadline(ctx *context.APIContext, form api.EditDeadlineOption) {
issue, err := models.GetIssueByIndex(ctx.Repo.Repository.ID, ctx.ParamsInt64(":index"))
if err != nil {
if models.IsErrIssueNotExist(err) {
ctx.Status(404)
ctx.NotFound()
} else {
ctx.Error(500, "GetIssueByIndex", err)
}
@@ -478,7 +478,7 @@ func StartIssueStopwatch(ctx *context.APIContext) {
issue, err := models.GetIssueByIndex(ctx.Repo.Repository.ID, ctx.ParamsInt64(":index"))
if err != nil {
if models.IsErrIssueNotExist(err) {
ctx.Status(404)
ctx.NotFound()
} else {
ctx.Error(500, "GetIssueByIndex", err)
}
@@ -547,7 +547,7 @@ func StopIssueStopwatch(ctx *context.APIContext) {
issue, err := models.GetIssueByIndex(ctx.Repo.Repository.ID, ctx.ParamsInt64(":index"))
if err != nil {
if models.IsErrIssueNotExist(err) {
ctx.Status(404)
ctx.NotFound()
} else {
ctx.Error(500, "GetIssueByIndex", err)
}

View File

@@ -268,7 +268,7 @@ func editIssueComment(ctx *context.APIContext, form api.EditIssueCommentOption)
comment, err := models.GetCommentByID(ctx.ParamsInt64(":id"))
if err != nil {
if models.IsErrCommentNotExist(err) {
ctx.Error(404, "GetCommentByID", err)
ctx.NotFound(err)
} else {
ctx.Error(500, "GetCommentByID", err)
}
@@ -361,7 +361,7 @@ func deleteIssueComment(ctx *context.APIContext) {
comment, err := models.GetCommentByID(ctx.ParamsInt64(":id"))
if err != nil {
if models.IsErrCommentNotExist(err) {
ctx.Error(404, "GetCommentByID", err)
ctx.NotFound(err)
} else {
ctx.Error(500, "GetCommentByID", err)
}

View File

@@ -44,7 +44,7 @@ func ListIssueLabels(ctx *context.APIContext) {
issue, err := models.GetIssueByIndex(ctx.Repo.Repository.ID, ctx.ParamsInt64(":index"))
if err != nil {
if models.IsErrIssueNotExist(err) {
ctx.Status(404)
ctx.NotFound()
} else {
ctx.Error(500, "GetIssueByIndex", err)
}
@@ -99,7 +99,7 @@ func AddIssueLabels(ctx *context.APIContext, form api.IssueLabelsOption) {
issue, err := models.GetIssueByIndex(ctx.Repo.Repository.ID, ctx.ParamsInt64(":index"))
if err != nil {
if models.IsErrIssueNotExist(err) {
ctx.Status(404)
ctx.NotFound()
} else {
ctx.Error(500, "GetIssueByIndex", err)
}
@@ -171,7 +171,7 @@ func DeleteIssueLabel(ctx *context.APIContext) {
issue, err := models.GetIssueByIndex(ctx.Repo.Repository.ID, ctx.ParamsInt64(":index"))
if err != nil {
if models.IsErrIssueNotExist(err) {
ctx.Status(404)
ctx.NotFound()
} else {
ctx.Error(500, "GetIssueByIndex", err)
}
@@ -237,7 +237,7 @@ func ReplaceIssueLabels(ctx *context.APIContext, form api.IssueLabelsOption) {
issue, err := models.GetIssueByIndex(ctx.Repo.Repository.ID, ctx.ParamsInt64(":index"))
if err != nil {
if models.IsErrIssueNotExist(err) {
ctx.Status(404)
ctx.NotFound()
} else {
ctx.Error(500, "GetIssueByIndex", err)
}
@@ -303,7 +303,7 @@ func ClearIssueLabels(ctx *context.APIContext) {
issue, err := models.GetIssueByIndex(ctx.Repo.Repository.ID, ctx.ParamsInt64(":index"))
if err != nil {
if models.IsErrIssueNotExist(err) {
ctx.Status(404)
ctx.NotFound()
} else {
ctx.Error(500, "GetIssueByIndex", err)
}

View File

@@ -47,13 +47,13 @@ func ListTrackedTimes(ctx *context.APIContext) {
// "200":
// "$ref": "#/responses/TrackedTimeList"
if !ctx.Repo.Repository.IsTimetrackerEnabled() {
ctx.Error(404, "IsTimetrackerEnabled", "Timetracker is diabled")
ctx.NotFound("Timetracker is disabled")
return
}
issue, err := models.GetIssueByIndex(ctx.Repo.Repository.ID, ctx.ParamsInt64(":index"))
if err != nil {
if models.IsErrIssueNotExist(err) {
ctx.Error(404, "GetIssueByIndex", err)
ctx.NotFound(err)
} else {
ctx.Error(500, "GetIssueByIndex", err)
}
@@ -109,7 +109,7 @@ func AddTime(ctx *context.APIContext, form api.AddTimeOption) {
issue, err := models.GetIssueByIndex(ctx.Repo.Repository.ID, ctx.ParamsInt64(":index"))
if err != nil {
if models.IsErrIssueNotExist(err) {
ctx.Error(404, "GetIssueByIndex", err)
ctx.NotFound(err)
} else {
ctx.Error(500, "GetIssueByIndex", err)
}
@@ -165,14 +165,14 @@ func ListTrackedTimesByUser(ctx *context.APIContext) {
user, err := models.GetUserByName(ctx.Params(":timetrackingusername"))
if err != nil {
if models.IsErrUserNotExist(err) {
ctx.Error(404, "GetUserByName", err)
ctx.NotFound(err)
} else {
ctx.Error(500, "GetUserByName", err)
}
return
}
if user == nil {
ctx.Status(404)
ctx.NotFound()
return
}
trackedTimes, err := models.GetTrackedTimes(models.FindTrackedTimesOptions{

View File

@@ -125,7 +125,7 @@ func GetDeployKey(ctx *context.APIContext) {
key, err := models.GetDeployKeyByID(ctx.ParamsInt64(":id"))
if err != nil {
if models.IsErrDeployKeyNotExist(err) {
ctx.Status(404)
ctx.NotFound()
} else {
ctx.Error(500, "GetDeployKeyByID", err)
}

View File

@@ -87,7 +87,7 @@ func GetLabel(ctx *context.APIContext) {
}
if err != nil {
if models.IsErrLabelNotExist(err) {
ctx.Status(404)
ctx.NotFound()
} else {
ctx.Error(500, "GetLabelByRepoID", err)
}
@@ -172,7 +172,7 @@ func EditLabel(ctx *context.APIContext, form api.EditLabelOption) {
label, err := models.GetLabelInRepoByID(ctx.Repo.Repository.ID, ctx.ParamsInt64(":id"))
if err != nil {
if models.IsErrLabelNotExist(err) {
ctx.Status(404)
ctx.NotFound()
} else {
ctx.Error(500, "GetLabelByRepoID", err)
}

View File

@@ -78,7 +78,7 @@ func GetMilestone(ctx *context.APIContext) {
milestone, err := models.GetMilestoneByRepoID(ctx.Repo.Repository.ID, ctx.ParamsInt64(":id"))
if err != nil {
if models.IsErrMilestoneNotExist(err) {
ctx.Status(404)
ctx.NotFound()
} else {
ctx.Error(500, "GetMilestoneByRepoID", err)
}
@@ -169,7 +169,7 @@ func EditMilestone(ctx *context.APIContext, form api.EditMilestoneOption) {
milestone, err := models.GetMilestoneByRepoID(ctx.Repo.Repository.ID, ctx.ParamsInt64(":id"))
if err != nil {
if models.IsErrMilestoneNotExist(err) {
ctx.Status(404)
ctx.NotFound()
} else {
ctx.Error(500, "GetMilestoneByRepoID", err)
}

View File

@@ -136,7 +136,7 @@ func GetPullRequest(ctx *context.APIContext) {
pr, err := models.GetPullRequestByIndex(ctx.Repo.Repository.ID, ctx.ParamsInt64(":index"))
if err != nil {
if models.IsErrPullRequestNotExist(err) {
ctx.Status(404)
ctx.NotFound()
} else {
ctx.Error(500, "GetPullRequestByIndex", err)
}
@@ -231,7 +231,7 @@ func CreatePullRequest(ctx *context.APIContext, form api.CreatePullRequestOption
milestone, err := models.GetMilestoneByRepoID(ctx.Repo.Repository.ID, milestoneID)
if err != nil {
if models.IsErrMilestoneNotExist(err) {
ctx.Status(404)
ctx.NotFound()
} else {
ctx.Error(500, "GetMilestoneByRepoID", err)
}
@@ -341,7 +341,7 @@ func EditPullRequest(ctx *context.APIContext, form api.EditPullRequestOption) {
pr, err := models.GetPullRequestByIndex(ctx.Repo.Repository.ID, ctx.ParamsInt64(":index"))
if err != nil {
if models.IsErrPullRequestNotExist(err) {
ctx.Status(404)
ctx.NotFound()
} else {
ctx.Error(500, "GetPullRequestByIndex", err)
}
@@ -438,7 +438,7 @@ func EditPullRequest(ctx *context.APIContext, form api.EditPullRequestOption) {
pr, err = models.GetPullRequestByIndex(ctx.Repo.Repository.ID, pr.Index)
if err != nil {
if models.IsErrPullRequestNotExist(err) {
ctx.Status(404)
ctx.NotFound()
} else {
ctx.Error(500, "GetPullRequestByIndex", err)
}
@@ -481,7 +481,7 @@ func IsPullRequestMerged(ctx *context.APIContext) {
pr, err := models.GetPullRequestByIndex(ctx.Repo.Repository.ID, ctx.ParamsInt64(":index"))
if err != nil {
if models.IsErrPullRequestNotExist(err) {
ctx.Status(404)
ctx.NotFound()
} else {
ctx.Error(500, "GetPullRequestByIndex", err)
}
@@ -491,7 +491,7 @@ func IsPullRequestMerged(ctx *context.APIContext) {
if pr.HasMerged {
ctx.Status(204)
}
ctx.Status(404)
ctx.NotFound()
}
// MergePullRequest merges a PR given an index
@@ -554,7 +554,7 @@ func MergePullRequest(ctx *context.APIContext, form auth.MergePullRequestForm) {
}
if pr.Issue.IsClosed {
ctx.Status(404)
ctx.NotFound()
return
}
@@ -634,7 +634,7 @@ func parseCompareInfo(ctx *context.APIContext, form api.CreatePullRequestOption)
headBranch = headInfos[1]
} else {
ctx.Status(404)
ctx.NotFound()
return nil, nil, nil, nil, "", ""
}
@@ -643,7 +643,7 @@ func parseCompareInfo(ctx *context.APIContext, form api.CreatePullRequestOption)
log.Info("Repo path: %s", ctx.Repo.GitRepo.Path)
// Check if base branch is valid.
if !ctx.Repo.GitRepo.IsBranchExist(baseBranch) {
ctx.Status(404)
ctx.NotFound()
return nil, nil, nil, nil, "", ""
}
@@ -651,7 +651,7 @@ func parseCompareInfo(ctx *context.APIContext, form api.CreatePullRequestOption)
headRepo, has := models.HasForkedRepo(headUser.ID, baseRepo.ID)
if !has && !isSameRepo {
log.Trace("parseCompareInfo[%d]: does not have fork or in same repository", baseRepo.ID)
ctx.Status(404)
ctx.NotFound()
return nil, nil, nil, nil, "", ""
}
@@ -674,13 +674,13 @@ func parseCompareInfo(ctx *context.APIContext, form api.CreatePullRequestOption)
}
if !perm.CanReadIssuesOrPulls(true) {
log.Trace("ParseCompareInfo[%d]: cannot create/read pull requests", baseRepo.ID)
ctx.Status(404)
ctx.NotFound()
return nil, nil, nil, nil, "", ""
}
// Check if head branch is valid.
if !headGitRepo.IsBranchExist(headBranch) {
ctx.Status(404)
ctx.NotFound()
return nil, nil, nil, nil, "", ""
}

View File

@@ -46,7 +46,7 @@ func GetRelease(ctx *context.APIContext) {
return
}
if release.RepoID != ctx.Repo.Repository.ID {
ctx.Status(404)
ctx.NotFound()
return
}
if err := release.LoadAttributes(); err != nil {
@@ -241,7 +241,7 @@ func EditRelease(ctx *context.APIContext, form api.EditReleaseOption) {
}
if err != nil && models.IsErrReleaseNotExist(err) ||
rel.IsTag || rel.RepoID != ctx.Repo.Repository.ID {
ctx.Status(404)
ctx.NotFound()
return
}
@@ -313,7 +313,7 @@ func DeleteRelease(ctx *context.APIContext) {
}
if err != nil && models.IsErrReleaseNotExist(err) ||
rel.IsTag || rel.RepoID != ctx.Repo.Repository.ID {
ctx.Status(404)
ctx.NotFound()
return
}
if err := models.DeleteReleaseByID(id, ctx.User, false); err != nil {

View File

@@ -57,7 +57,7 @@ func GetReleaseAttachment(ctx *context.APIContext) {
return
}
if attach.ReleaseID != releaseID {
ctx.Status(404)
ctx.NotFound()
return
}
// FIXME Should prove the existence of the given repo, but results in unnecessary database requests
@@ -98,7 +98,7 @@ func ListReleaseAttachments(ctx *context.APIContext) {
return
}
if release.RepoID != ctx.Repo.Repository.ID {
ctx.Status(404)
ctx.NotFound()
return
}
if err := release.LoadAttributes(); err != nil {
@@ -150,7 +150,7 @@ func CreateReleaseAttachment(ctx *context.APIContext) {
// Check if attachments are enabled
if !setting.AttachmentEnabled {
ctx.Error(404, "AttachmentEnabled", errors.New("attachment is not enabled"))
ctx.NotFound("Attachment is not enabled")
return
}
@@ -262,7 +262,7 @@ func EditReleaseAttachment(ctx *context.APIContext, form api.EditAttachmentOptio
return
}
if attach.ReleaseID != releaseID {
ctx.Status(404)
ctx.NotFound()
return
}
// FIXME Should prove the existence of the given repo, but results in unnecessary database requests
@@ -319,7 +319,7 @@ func DeleteReleaseAttachment(ctx *context.APIContext) {
return
}
if attach.ReleaseID != releaseID {
ctx.Status(404)
ctx.NotFound()
return
}
// FIXME Should prove the existence of the given repo, but results in unnecessary database requests

View File

@@ -472,7 +472,7 @@ func GetByID(ctx *context.APIContext) {
repo, err := models.GetRepositoryByID(ctx.ParamsInt64(":id"))
if err != nil {
if models.IsErrRepoNotExist(err) {
ctx.Status(404)
ctx.NotFound()
} else {
ctx.Error(500, "GetRepositoryByID", err)
}
@@ -484,7 +484,7 @@ func GetByID(ctx *context.APIContext) {
ctx.Error(500, "AccessLevel", err)
return
} else if !perm.HasAccess() {
ctx.Status(404)
ctx.NotFound()
return
}
ctx.JSON(200, repo.APIFormat(perm.AccessMode))