aboutsummaryrefslogtreecommitdiff
path: root/internal/route/repo
diff options
context:
space:
mode:
authorᴜɴᴋɴᴡᴏɴ <u@gogs.io>2020-03-16 01:22:27 +0800
committerᴜɴᴋɴᴡᴏɴ <u@gogs.io>2020-03-16 01:22:27 +0800
commit9e9ca66467116e9079a2639c00e9e623aca23015 (patch)
treedacdef5392608ff7107e4dd498959d4899e13e54 /internal/route/repo
parent82ff0c5852f29daa5f95d965fd50665581e7ea3c (diff)
refactor: unify error handling in routing layer
Diffstat (limited to 'internal/route/repo')
-rw-r--r--internal/route/repo/branch.go10
-rw-r--r--internal/route/repo/commit.go22
-rw-r--r--internal/route/repo/download.go4
-rw-r--r--internal/route/repo/editor.go36
-rw-r--r--internal/route/repo/http.go21
-rw-r--r--internal/route/repo/issue.go179
-rw-r--r--internal/route/repo/pull.go84
-rw-r--r--internal/route/repo/release.go50
-rw-r--r--internal/route/repo/repo.go41
-rw-r--r--internal/route/repo/setting.go96
-rw-r--r--internal/route/repo/view.go30
-rw-r--r--internal/route/repo/webhook.go120
-rw-r--r--internal/route/repo/wiki.go44
13 files changed, 351 insertions, 386 deletions
diff --git a/internal/route/repo/branch.go b/internal/route/repo/branch.go
index 2ee353b3..17630554 100644
--- a/internal/route/repo/branch.go
+++ b/internal/route/repo/branch.go
@@ -31,13 +31,13 @@ type Branch struct {
func loadBranches(c *context.Context) []*Branch {
rawBranches, err := c.Repo.Repository.GetBranches()
if err != nil {
- c.Handle(500, "GetBranches", err)
+ c.Error(err, "get branches")
return nil
}
protectBranches, err := db.GetProtectBranchesByRepoID(c.Repo.Repository.ID)
if err != nil {
- c.Handle(500, "GetProtectBranchesByRepoID", err)
+ c.Error(err, "get protect branches by repository ID")
return nil
}
@@ -45,7 +45,7 @@ func loadBranches(c *context.Context) []*Branch {
for i := range rawBranches {
commit, err := rawBranches[i].GetCommit()
if err != nil {
- c.Handle(500, "GetCommit", err)
+ c.Error(err, "get commit")
return nil
}
@@ -91,7 +91,7 @@ func Branches(c *context.Context) {
c.Data["ActiveBranches"] = activeBranches
c.Data["StaleBranches"] = staleBranches
- c.HTML(200, BRANCHES_OVERVIEW)
+ c.Success( BRANCHES_OVERVIEW)
}
func AllBranches(c *context.Context) {
@@ -104,7 +104,7 @@ func AllBranches(c *context.Context) {
}
c.Data["Branches"] = branches
- c.HTML(200, BRANCHES_ALL)
+ c.Success( BRANCHES_ALL)
}
func DeleteBranchPost(c *context.Context) {
diff --git a/internal/route/repo/commit.go b/internal/route/repo/commit.go
index 7b11e89a..e8ff3380 100644
--- a/internal/route/repo/commit.go
+++ b/internal/route/repo/commit.go
@@ -54,7 +54,7 @@ func renderCommits(c *context.Context, filename string) {
commits, err := c.Repo.Commit.CommitsByPage(page, pageSize, git.CommitsByPageOptions{Path: filename})
if err != nil {
- c.ServerError("paging commits", err)
+ c.Error(err, "paging commits")
return
}
@@ -73,7 +73,7 @@ func renderCommits(c *context.Context, filename string) {
c.Data["Username"] = c.Repo.Owner.Name
c.Data["Reponame"] = c.Repo.Repository.Name
- c.HTML(200, COMMITS)
+ c.Success(COMMITS)
}
func Commits(c *context.Context) {
@@ -91,7 +91,7 @@ func SearchCommits(c *context.Context) {
commits, err := c.Repo.Commit.SearchCommits(keyword)
if err != nil {
- c.ServerError("SearchCommits", err)
+ c.Error(err, "search commits")
return
}
@@ -102,7 +102,7 @@ func SearchCommits(c *context.Context) {
c.Data["Username"] = c.Repo.Owner.Name
c.Data["Reponame"] = c.Repo.Repository.Name
c.Data["Branch"] = c.Repo.BranchName
- c.HTML(200, COMMITS)
+ c.Success(COMMITS)
}
func FileHistory(c *context.Context) {
@@ -119,7 +119,7 @@ func Diff(c *context.Context) {
commit, err := c.Repo.GitRepo.CatFileCommit(commitID)
if err != nil {
- c.NotFoundOrServerError("get commit by ID", gitutil.IsErrRevisionNotExist, err)
+ c.NotFoundOrError(gitutil.NewError(err), "get commit by ID")
return
}
@@ -127,7 +127,7 @@ func Diff(c *context.Context) {
commitID, conf.Git.MaxDiffFiles, conf.Git.MaxDiffLines, conf.Git.MaxDiffLineChars,
)
if err != nil {
- c.NotFoundOrServerError("get diff", gitutil.IsErrRevisionNotExist, err)
+ c.NotFoundOrError(gitutil.NewError(err), "get diff")
return
}
@@ -171,7 +171,7 @@ func RawDiff(c *context.Context) {
git.RawDiffFormat(c.Params(":ext")),
c.Resp,
); err != nil {
- c.NotFoundOrServerError("get raw diff", gitutil.IsErrRevisionNotExist, err)
+ c.NotFoundOrError(gitutil.NewError(err), "get raw diff")
return
}
}
@@ -185,7 +185,7 @@ func CompareDiff(c *context.Context) {
commit, err := c.Repo.GitRepo.CatFileCommit(afterCommitID)
if err != nil {
- c.Handle(404, "GetCommit", err)
+ c.NotFoundOrError(gitutil.NewError(err), "get head commit")
return
}
@@ -194,13 +194,13 @@ func CompareDiff(c *context.Context) {
git.DiffOptions{Base: beforeCommitID},
)
if err != nil {
- c.ServerError("get diff", err)
+ c.NotFoundOrError(gitutil.NewError(err), "get diff")
return
}
commits, err := commit.CommitsAfter(beforeCommitID)
if err != nil {
- c.ServerError("get commits after", err)
+ c.NotFoundOrError(gitutil.NewError(err), "get commits after")
return
}
@@ -220,5 +220,5 @@ func CompareDiff(c *context.Context) {
c.Data["SourcePath"] = conf.Server.Subpath + "/" + path.Join(userName, repoName, "src", afterCommitID)
c.Data["BeforeSourcePath"] = conf.Server.Subpath + "/" + path.Join(userName, repoName, "src", beforeCommitID)
c.Data["RawPath"] = conf.Server.Subpath + "/" + path.Join(userName, repoName, "raw", afterCommitID)
- c.HTML(200, DIFF)
+ c.Success(DIFF)
}
diff --git a/internal/route/repo/download.go b/internal/route/repo/download.go
index 4bf27e20..6e29c10e 100644
--- a/internal/route/repo/download.go
+++ b/internal/route/repo/download.go
@@ -51,12 +51,12 @@ func ServeBlob(c *context.Context, blob *git.Blob) error {
func SingleDownload(c *context.Context) {
blob, err := c.Repo.Commit.Blob(c.Repo.TreePath)
if err != nil {
- c.NotFoundOrServerError("get blob", gitutil.IsErrRevisionNotExist, err)
+ c.NotFoundOrError(gitutil.NewError(err), "get blob")
return
}
if err = ServeBlob(c, blob); err != nil {
- c.ServerError("serve blob", err)
+ c.Error(err, "serve blob")
return
}
}
diff --git a/internal/route/repo/editor.go b/internal/route/repo/editor.go
index 17434dff..cd71ff79 100644
--- a/internal/route/repo/editor.go
+++ b/internal/route/repo/editor.go
@@ -56,7 +56,7 @@ func editFile(c *context.Context, isNewFile bool) {
if !isNewFile {
entry, err := c.Repo.Commit.TreeEntry(c.Repo.TreePath)
if err != nil {
- c.NotFoundOrServerError("get tree entry", gitutil.IsErrRevisionNotExist, err)
+ c.NotFoundOrError(gitutil.NewError(err), "get tree entry")
return
}
@@ -69,7 +69,7 @@ func editFile(c *context.Context, isNewFile bool) {
blob := entry.Blob()
p, err := blob.Bytes()
if err != nil {
- c.ServerError("blob.Data", err)
+ c.Error(err, "get blob data")
return
}
@@ -182,7 +182,7 @@ func editFilePost(c *context.Context, f form.EditRepoFile, isNewFile bool) {
break
}
- c.ServerError("Repo.Commit.GetTreeEntryByPath", err)
+ c.Error(err, "get tree entry")
return
}
if index != len(treeNames)-1 {
@@ -211,14 +211,14 @@ func editFilePost(c *context.Context, f form.EditRepoFile, isNewFile bool) {
c.FormErr("TreePath")
c.RenderWithErr(c.Tr("repo.editor.file_editing_no_longer_exists", oldTreePath), EDIT_FILE, &f)
} else {
- c.ServerError("GetTreeEntryByPath", err)
+ c.Error(err, "get tree entry")
}
return
}
if lastCommit != c.Repo.CommitID {
files, err := c.Repo.Commit.FilesChangedAfter(lastCommit)
if err != nil {
- c.ServerError("GetFilesChangedSinceCommit", err)
+ c.Error(err, "get changed files")
return
}
@@ -236,7 +236,7 @@ func editFilePost(c *context.Context, f form.EditRepoFile, isNewFile bool) {
entry, err := c.Repo.Commit.TreeEntry(f.TreePath)
if err != nil {
if !gitutil.IsErrRevisionNotExist(err) {
- c.ServerError("GetTreeEntryByPath", err)
+ c.Error(err, "get tree entry")
return
}
}
@@ -297,26 +297,26 @@ func DiffPreviewPost(c *context.Context, f form.EditPreviewDiff) {
entry, err := c.Repo.Commit.TreeEntry(treePath)
if err != nil {
- c.Error(500, "GetTreeEntryByPath: "+err.Error())
+ c.Error(err, "get tree entry")
return
} else if entry.IsTree() {
- c.Error(422)
+ c.Status(http.StatusUnprocessableEntity)
return
}
diff, err := c.Repo.Repository.GetDiffPreview(c.Repo.BranchName, treePath, f.Content)
if err != nil {
- c.Error(500, "GetDiffPreview: "+err.Error())
+ c.Error(err, "get diff preview")
return
}
if diff.NumFiles() == 0 {
- c.PlainText(200, []byte(c.Tr("repo.editor.no_changes_to_show")))
+ c.PlainText(http.StatusOK, c.Tr("repo.editor.no_changes_to_show"))
return
}
c.Data["File"] = diff.Files[0]
- c.HTML(200, EDIT_DIFF_PREVIEW)
+ c.Success(EDIT_DIFF_PREVIEW)
}
func DeleteFile(c *context.Context) {
@@ -468,7 +468,7 @@ func UploadFilePost(c *context.Context, f form.UploadRepoFile) {
break
}
- c.ServerError("GetTreeEntryByPath", err)
+ c.Error(err, "get tree entry")
return
}
@@ -514,7 +514,7 @@ func UploadFilePost(c *context.Context, f form.UploadRepoFile) {
func UploadFileToServer(c *context.Context) {
file, header, err := c.Req.FormFile("file")
if err != nil {
- c.Error(http.StatusInternalServerError, fmt.Sprintf("FormFile: %v", err))
+ c.Error(err, "get file")
return
}
defer file.Close()
@@ -537,14 +537,14 @@ func UploadFileToServer(c *context.Context) {
}
if !allowed {
- c.Error(http.StatusBadRequest, ErrFileTypeForbidden.Error())
+ c.PlainText(http.StatusBadRequest, ErrFileTypeForbidden.Error())
return
}
}
upload, err := db.NewUpload(header.Filename, buf, file)
if err != nil {
- c.Error(http.StatusInternalServerError, fmt.Sprintf("NewUpload: %v", err))
+ c.Error(err, "new upload")
return
}
@@ -556,15 +556,15 @@ func UploadFileToServer(c *context.Context) {
func RemoveUploadFileFromServer(c *context.Context, f form.RemoveUploadFile) {
if len(f.File) == 0 {
- c.Status(204)
+ c.Status(http.StatusNoContent)
return
}
if err := db.DeleteUploadByUUID(f.File); err != nil {
- c.Error(500, fmt.Sprintf("DeleteUploadByUUID: %v", err))
+ c.Error(err, "delete upload by UUID")
return
}
log.Trace("Upload file removed: %s", f.File)
- c.Status(204)
+ c.Status(http.StatusNoContent)
}
diff --git a/internal/route/repo/http.go b/internal/route/repo/http.go
index 59aea393..e63bc872 100644
--- a/internal/route/repo/http.go
+++ b/internal/route/repo/http.go
@@ -22,7 +22,6 @@ import (
"gogs.io/gogs/internal/conf"
"gogs.io/gogs/internal/context"
"gogs.io/gogs/internal/db"
- "gogs.io/gogs/internal/db/errors"
"gogs.io/gogs/internal/lazyregexp"
"gogs.io/gogs/internal/tool"
)
@@ -39,7 +38,7 @@ type HTTPContext struct {
// askCredentials responses HTTP header and status which informs client to provide credentials.
func askCredentials(c *context.Context, status int, text string) {
c.Resp.Header().Set("WWW-Authenticate", "Basic realm=\".\"")
- c.HandleText(status, text)
+ c.PlainText(status, text)
}
func HTTPContexter() macaron.Handler {
@@ -66,13 +65,13 @@ func HTTPContexter() macaron.Handler {
owner, err := db.GetUserByName(ownerName)
if err != nil {
- c.NotFoundOrServerError("GetUserByName", errors.IsUserNotExist, err)
+ c.NotFoundOrError(err, "get user by name")
return
}
repo, err := db.GetRepositoryByName(owner.ID, repoName)
if err != nil {
- c.NotFoundOrServerError("GetRepositoryByName", errors.IsRepoNotExist, err)
+ c.NotFoundOrError(err, "get repository by name")
return
}
@@ -113,8 +112,8 @@ func HTTPContexter() macaron.Handler {
}
authUser, err := db.UserLogin(authUsername, authPassword, -1)
- if err != nil && !errors.IsUserNotExist(err) {
- c.Handle(http.StatusInternalServerError, "UserLogin", err)
+ if err != nil && !db.IsErrUserNotExist(err) {
+ c.Error(err, "authenticate user")
return
}
@@ -125,7 +124,7 @@ func HTTPContexter() macaron.Handler {
if db.IsErrAccessTokenEmpty(err) || db.IsErrAccessTokenNotExist(err) {
askCredentials(c, http.StatusUnauthorized, "")
} else {
- c.Handle(http.StatusInternalServerError, "GetAccessTokenBySHA", err)
+ c.Error(err, "get access token by SHA")
}
return
}
@@ -136,7 +135,7 @@ func HTTPContexter() macaron.Handler {
if err != nil {
// Once we found token, we're supposed to find its related user,
// thus any error is unexpected.
- c.Handle(http.StatusInternalServerError, "GetUserByID", err)
+ c.Error(err, "get user by ID")
return
}
} else if authUser.IsEnabledTwoFactor() {
@@ -153,7 +152,7 @@ Please create and use personal access token on user settings page`)
}
has, err := db.HasAccess(authUser.ID, repo, mode)
if err != nil {
- c.Handle(http.StatusInternalServerError, "HasAccess", err)
+ c.Error(err, "check access")
return
} else if !has {
askCredentials(c, http.StatusForbidden, "User permission denied")
@@ -161,7 +160,7 @@ Please create and use personal access token on user settings page`)
}
if !isPull && repo.IsMirror {
- c.HandleText(http.StatusForbidden, "Mirror repository is read-only")
+ c.PlainText(http.StatusForbidden, "Mirror repository is read-only")
return
}
@@ -388,7 +387,7 @@ func HTTP(c *HTTPContext) {
// but we only want to output this message only if user is really trying to access
// Git HTTP endpoints.
if conf.Repository.DisableHTTPGit {
- c.HandleText(http.StatusForbidden, "Interacting with repositories by HTTP protocol is not disabled")
+ c.PlainText(http.StatusForbidden, "Interacting with repositories by HTTP protocol is disabled")
return
}
diff --git a/internal/route/repo/issue.go b/internal/route/repo/issue.go
index fea9af98..1b64cfe2 100644
--- a/internal/route/repo/issue.go
+++ b/internal/route/repo/issue.go
@@ -51,7 +51,7 @@ var (
func MustEnableIssues(c *context.Context) {
if !c.Repo.Repository.EnableIssues {
- c.Handle(404, "MustEnableIssues", nil)
+ c.NotFound()
return
}
@@ -63,7 +63,7 @@ func MustEnableIssues(c *context.Context) {
func MustAllowPulls(c *context.Context) {
if !c.Repo.Repository.AllowsPulls() {
- c.Handle(404, "MustAllowPulls", nil)
+ c.NotFound()
return
}
@@ -77,7 +77,7 @@ func MustAllowPulls(c *context.Context) {
func RetrieveLabels(c *context.Context) {
labels, err := db.GetLabelsByRepoID(c.Repo.Repository.ID)
if err != nil {
- c.Handle(500, "RetrieveLabels.GetLabels", err)
+ c.Error(err, "get labels by repository ID")
return
}
for _, l := range labels {
@@ -182,14 +182,14 @@ func issues(c *context.Context, isPullList bool) {
SortType: sortType,
})
if err != nil {
- c.Handle(500, "Issues", err)
+ c.Error(err, "list issues")
return
}
// Get issue-user relations.
pairs, err := db.GetIssueUsers(repo.ID, posterID, isShowClosed)
if err != nil {
- c.Handle(500, "GetIssueUsers", err)
+ c.Error(err, "get issue-user relations")
return
}
@@ -213,14 +213,14 @@ func issues(c *context.Context, isPullList bool) {
// Get milestones.
c.Data["Milestones"], err = db.GetMilestonesByRepoID(repo.ID)
if err != nil {
- c.Handle(500, "GetAllRepoMilestones", err)
+ c.Error(err, "get milestone by repository ID")
return
}
// Get assignees.
c.Data["Assignees"], err = repo.GetAssignees()
if err != nil {
- c.Handle(500, "GetAssignees", err)
+ c.Error(err, "get assignees")
return
}
@@ -241,7 +241,7 @@ func issues(c *context.Context, isPullList bool) {
c.Data["State"] = "open"
}
- c.HTML(200, ISSUES)
+ c.Success(ISSUES)
}
func Issues(c *context.Context) {
@@ -264,18 +264,18 @@ func RetrieveRepoMilestonesAndAssignees(c *context.Context, repo *db.Repository)
var err error
c.Data["OpenMilestones"], err = db.GetMilestones(repo.ID, -1, false)
if err != nil {
- c.Handle(500, "GetMilestones", err)
+ c.Error(err, "get open milestones")
return
}
c.Data["ClosedMilestones"], err = db.GetMilestones(repo.ID, -1, true)
if err != nil {
- c.Handle(500, "GetMilestones", err)
+ c.Error(err, "get closed milestones")
return
}
c.Data["Assignees"], err = repo.GetAssignees()
if err != nil {
- c.Handle(500, "GetAssignees", err)
+ c.Error(err, "get assignees")
return
}
}
@@ -287,7 +287,7 @@ func RetrieveRepoMetas(c *context.Context, repo *db.Repository) []*db.Label {
labels, err := db.GetLabelsByRepoID(repo.ID)
if err != nil {
- c.Handle(500, "GetLabelsByRepoID", err)
+ c.Error(err, "get labels by repository ID")
return nil
}
c.Data["Labels"] = labels
@@ -345,7 +345,7 @@ func NewIssue(c *context.Context) {
return
}
- c.HTML(200, ISSUE_NEW)
+ c.Success(ISSUE_NEW)
}
func ValidateRepoMetas(c *context.Context, f form.NewIssue) ([]int64, int64, int64) {
@@ -382,7 +382,7 @@ func ValidateRepoMetas(c *context.Context, f form.NewIssue) ([]int64, int64, int
if milestoneID > 0 {
c.Data["Milestone"], err = repo.GetMilestoneByID(milestoneID)
if err != nil {
- c.Handle(500, "GetMilestoneByID", err)
+ c.Error(err, "get milestone by ID")
return nil, 0, 0
}
c.Data["milestone_id"] = milestoneID
@@ -393,7 +393,7 @@ func ValidateRepoMetas(c *context.Context, f form.NewIssue) ([]int64, int64, int
if assigneeID > 0 {
c.Data["Assignee"], err = repo.GetAssigneeByID(assigneeID)
if err != nil {
- c.Handle(500, "GetAssigneeByID", err)
+ c.Error(err, "get assignee by ID")
return nil, 0, 0
}
c.Data["assignee_id"] = assigneeID
@@ -415,7 +415,7 @@ func NewIssuePost(c *context.Context, f form.NewIssue) {
}
if c.HasError() {
- c.HTML(200, ISSUE_NEW)
+ c.Success(ISSUE_NEW)
return
}
@@ -434,7 +434,7 @@ func NewIssuePost(c *context.Context, f form.NewIssue) {
Content: f.Content,
}
if err := db.NewIssue(c.Repo.Repository, issue, labelIDs, attachments); err != nil {
- c.Handle(500, "NewIssue", err)
+ c.Error(err, "new issue")
return
}
@@ -445,7 +445,7 @@ func NewIssuePost(c *context.Context, f form.NewIssue) {
func uploadAttachment(c *context.Context, allowedTypes []string) {
file, header, err := c.Req.FormFile("file")
if err != nil {
- c.Error(500, fmt.Sprintf("FormFile: %v", err))
+ c.Error(err, "get file")
return
}
defer file.Close()
@@ -467,18 +467,18 @@ func uploadAttachment(c *context.Context, allowedTypes []string) {
}
if !allowed {
- c.Error(400, ErrFileTypeForbidden.Error())
+ c.PlainText(http.StatusBadRequest, ErrFileTypeForbidden.Error())
return
}
attach, err := db.NewAttachment(header.Filename, buf, file)
if err != nil {
- c.Error(500, fmt.Sprintf("NewAttachment: %v", err))
+ c.Error(err, "new attachment")
return
}
log.Trace("New attachment uploaded: %s", attach.UUID)
- c.JSON(200, map[string]string{
+ c.JSONSuccess(map[string]string{
"uuid": attach.UUID,
})
}
@@ -505,7 +505,7 @@ func viewIssue(c *context.Context, isPullList bool) {
issue, err := db.GetIssueByIndex(c.Repo.Repository.ID, index)
if err != nil {
- c.NotFoundOrServerError("GetIssueByIndex", errors.IsIssueNotExist, err)
+ c.NotFoundOrError(err, "get issue by index")
return
}
c.Data["Title"] = issue.Title
@@ -559,7 +559,7 @@ func viewIssue(c *context.Context, isPullList bool) {
}
labels, err := db.GetLabelsByRepoID(repo.ID)
if err != nil {
- c.Handle(500, "GetLabelsByRepoID", err)
+ c.Error(err, "get labels by repository ID")
return
}
hasSelected := false
@@ -583,7 +583,7 @@ func viewIssue(c *context.Context, isPullList bool) {
if c.IsLogged {
// Update issue-user.
if err = issue.ReadBy(c.User.ID); err != nil {
- c.Handle(500, "ReadBy", err)
+ c.Error(err, "mark read by")
return
}
}
@@ -638,8 +638,8 @@ func viewIssue(c *context.Context, isPullList bool) {
branchProtected := false
protectBranch, err := db.GetProtectBranchOfRepoByName(pull.BaseRepoID, pull.HeadBranch)
if err != nil {
- if !errors.IsErrBranchNotExist(err) {
- c.ServerError("GetProtectBranchOfRepoByName", err)
+ if !db.IsErrBranchNotExist(err) {
+ c.Error(err, "get protect branch of repository by name")
return
}
} else {
@@ -661,7 +661,7 @@ func viewIssue(c *context.Context, isPullList bool) {
c.Data["Issue"] = issue
c.Data["IsIssueOwner"] = c.Repo.IsWriter() || (c.IsLogged && issue.IsPoster(c.User.ID))
c.Data["SignInLink"] = conf.Server.Subpath + "/user/login?redirect_to=" + c.Data["Link"].(string)
- c.HTML(200, ISSUE_VIEW)
+ c.Success(ISSUE_VIEW)
}
func ViewIssue(c *context.Context) {
@@ -675,7 +675,7 @@ func ViewPull(c *context.Context) {
func getActionIssue(c *context.Context) *db.Issue {
issue, err := db.GetIssueByIndex(c.Repo.Repository.ID, c.ParamsInt64(":index"))
if err != nil {
- c.NotFoundOrServerError("GetIssueByIndex", errors.IsIssueNotExist, err)
+ c.NotFoundOrError(err, "get issue by index")
return nil
}
@@ -695,22 +695,22 @@ func UpdateIssueTitle(c *context.Context) {
}
if !c.IsLogged || (!issue.IsPoster(c.User.ID) && !c.Repo.IsWriter()) {
- c.Error(403)
+ c.Status(http.StatusForbidden)
return
}
title := c.QueryTrim("title")
if len(title) == 0 {
- c.Error(204)
+ c.Status(http.StatusNoContent)
return
}
if err := issue.ChangeTitle(c.User, title); err != nil {
- c.Handle(500, "ChangeTitle", err)
+ c.Error(err, "change title")
return
}
- c.JSON(200, map[string]interface{}{
+ c.JSONSuccess(map[string]interface{}{
"title": issue.Title,
})
}
@@ -722,17 +722,17 @@ func UpdateIssueContent(c *context.Context) {
}
if !c.IsLogged || (c.User.ID != issue.PosterID && !c.Repo.IsWriter()) {
- c.Error(403)
+ c.Status(http.StatusForbidden)
return
}
content := c.Query("content")
if err := issue.ChangeContent(c.User, content); err != nil {
- c.Handle(500, "ChangeContent", err)
+ c.Error(err, "change content")
return
}
- c.JSON(200, map[string]string{
+ c.JSONSuccess(map[string]string{
"content": string(markup.Markdown(issue.Content, c.Query("context"), c.Repo.Repository.ComposeMetas())),
})
}
@@ -745,35 +745,31 @@ func UpdateIssueLabel(c *context.Context) {
if c.Query("action") == "clear" {
if err := issue.ClearLabels(c.User); err != nil {
- c.Handle(500, "ClearLabels", err)
+ c.Error(err, "clear labels")
return
}
} else {
isAttach := c.Query("action") == "attach"
label, err := db.GetLabelOfRepoByID(c.Repo.Repository.ID, c.QueryInt64("id"))
if err != nil {
- if db.IsErrLabelNotExist(err) {
- c.Error(404, "GetLabelByID")
- } else {
- c.Handle(500, "GetLabelByID", err)
- }
+ c.NotFoundOrError(err, "get label by ID")
return
}
if isAttach && !issue.HasLabel(label.ID) {
if err = issue.AddLabel(c.User, label); err != nil {
- c.Handle(500, "AddLabel", err)
+ c.Error(err, "add label")
return
}
} else if !isAttach && issue.HasLabel(label.ID) {
if err = issue.RemoveLabel(c.User, label); err != nil {
- c.Handle(500, "RemoveLabel", err)
+ c.Error(err, "remove label")
return
}
}
}
- c.JSON(200, map[string]interface{}{
+ c.JSONSuccess(map[string]interface{}{
"ok": true,
})
}
@@ -787,7 +783,7 @@ func UpdateIssueMilestone(c *context.Context) {
oldMilestoneID := issue.MilestoneID
milestoneID := c.QueryInt64("id")
if oldMilestoneID == milestoneID {
- c.JSON(200, map[string]interface{}{
+ c.JSONSuccess(map[string]interface{}{
"ok": true,
})
return
@@ -796,11 +792,11 @@ func UpdateIssueMilestone(c *context.Context) {
// Not check for invalid milestone id and give responsibility to owners.
issue.MilestoneID = milestoneID
if err := db.ChangeMilestoneAssign(c.User, issue, oldMilestoneID); err != nil {
- c.Handle(500, "ChangeMilestoneAssign", err)
+ c.Error(err, "change milestone assign")
return
}
- c.JSON(200, map[string]interface{}{
+ c.JSONSuccess(map[string]interface{}{
"ok": true,
})
}
@@ -813,18 +809,18 @@ func UpdateIssueAssignee(c *context.Context) {
assigneeID := c.QueryInt64("id")
if issue.AssigneeID == assigneeID {
- c.JSON(200, map[string]interface{}{
+ c.JSONSuccess(map[string]interface{}{
"ok": true,
})
return
}
if err := issue.ChangeAssignee(c.User, assigneeID); err != nil {
- c.Handle(500, "ChangeAssignee", err)
+ c.Error(err, "change assignee")
return
}
- c.JSON(200, map[string]interface{}{
+ c.JSONSuccess(map[string]interface{}{
"ok": true,
})
}
@@ -862,7 +858,7 @@ func NewComment(c *context.Context, f form.CreateComment) {
pr, err = db.GetUnmergedPullRequest(pull.HeadRepoID, pull.BaseRepoID, pull.HeadBranch, pull.BaseBranch)
if err != nil {
if !db.IsErrPullRequestNotExist(err) {
- c.ServerError("GetUnmergedPullRequest", err)
+ c.Error(err, "get unmerged pull request")
return
}
}
@@ -870,7 +866,7 @@ func NewComment(c *context.Context, f form.CreateComment) {
// Regenerate patch and test conflict.
if pr == nil {
if err = issue.PullRequest.UpdatePatch(); err != nil {
- c.ServerError("UpdatePatch", err)
+ c.Error(err, "update patch")
return
}
@@ -913,7 +909,7 @@ func NewComment(c *context.Context, f form.CreateComment) {
comment, err = db.CreateIssueComment(c.User, c.Repo.Repository, issue, f.Content, attachments)
if err != nil {
- c.ServerError("CreateIssueComment", err)
+ c.Error(err, "create issue comment")
return
}
@@ -923,32 +919,32 @@ func NewComment(c *context.Context, f form.CreateComment) {
func UpdateCommentContent(c *context.Context) {
comment, err := db.GetCommentByID(c.ParamsInt64(":id"))
if err != nil {
- c.NotFoundOrServerError("GetCommentByID", db.IsErrCommentNotExist, err)
+ c.NotFoundOrError(err, "get comment by ID")
return
}
if c.UserID() != comment.PosterID && !c.Repo.IsAdmin() {
- c.Error(404)
+ c.NotFound()
return
} else if comment.Type != db.COMMENT_TYPE_COMMENT {
- c.Error(204)
+ c.Status(http.StatusNoContent)
return
}
oldContent := comment.Content
comment.Content = c.Query("content")
if len(comment.Content) == 0 {
- c.JSON(200, map[string]interface{}{
+ c.JSONSuccess(map[string]interface{}{
"content": "",
})
return
}
if err = db.UpdateComment(c.User, comment, oldContent); err != nil {
- c.Handle(500, "UpdateComment", err)
+ c.Error(err, "update comment")
return
}
- c.JSON(200, map[string]string{
+ c.JSONSuccess(map[string]string{
"content": string(markup.Markdown(comment.Content, c.Query("context"), c.Repo.Repository.ComposeMetas())),
})
}
@@ -956,24 +952,24 @@ func UpdateCommentContent(c *context.Context) {
func DeleteComment(c *context.Context) {
comment, err := db.GetCommentByID(c.ParamsInt64(":id"))
if err != nil {
- c.NotFoundOrServerError("GetCommentByID", db.IsErrCommentNotExist, err)
+ c.NotFoundOrError(err, "get comment by ID")
return
}
if c.UserID() != comment.PosterID && !c.Repo.IsAdmin() {
- c.Error(404)
+ c.NotFound()
return
} else if comment.Type != db.COMMENT_TYPE_COMMENT {
- c.Error(204)
+ c.Status(http.StatusNoContent)
return
}
if err = db.DeleteCommentByID(c.User, comment.ID); err != nil {
- c.Handle(500, "DeleteCommentByID", err)
+ c.Error(err, "delete comment by ID")
return
}
- c.Status(200)
+ c.Status(http.StatusOK)
}
func Labels(c *context.Context) {
@@ -982,7 +978,7 @@ func Labels(c *context.Context) {
c.Data["PageIsLabels"] = true
c.Data["RequireMinicolors"] = true
c.Data["LabelTemplates"] = db.LabelTemplates
- c.HTML(200, LABELS)
+ c.Success(LABELS)
}
func InitializeLabels(c *context.Context, f form.InitializeLabels) {
@@ -1006,7 +1002,7 @@ func InitializeLabels(c *context.Context, f form.InitializeLabels) {
}
}
if err := db.NewLabels(labels...); err != nil {
- c.Handle(500, "NewLabels", err)
+ c.Error(err, "new labels")
return
}
c.RawRedirect(c.Repo.MakeURL("labels"))
@@ -1028,7 +1024,7 @@ func NewLabel(c *context.Context, f form.CreateLabel) {
Color: f.Color,
}
if err := db.NewLabels(l); err != nil {
- c.Handle(500, "NewLabel", err)
+ c.Error(err, "new labels")
return
}
c.RawRedirect(c.Repo.MakeURL("labels"))
@@ -1037,19 +1033,14 @@ func NewLabel(c *context.Context, f form.CreateLabel) {
func UpdateLabel(c *context.Context, f form.CreateLabel) {
l, err := db.GetLabelByID(f.ID)
if err != nil {
- switch {
- case db.IsErrLabelNotExist(err):
- c.Error(404)
- default:
- c.Handle(500, "UpdateLabel", err)
- }
+ c.NotFoundOrError(err, "get label by ID")
return
}
l.Name = f.Title
l.Color = f.Color
if err := db.UpdateLabel(l); err != nil {
- c.Handle(500, "UpdateLabel", err)
+ c.Error(err, "update label")
return
}
c.RawRedirect(c.Repo.MakeURL("labels"))
@@ -1092,7 +1083,7 @@ func Milestones(c *context.Context) {
miles, err := db.GetMilestones(c.Repo.Repository.ID, page, isShowClosed)
if err != nil {
- c.Handle(500, "GetMilestones", err)
+ c.Error(err, "get milestones")
return
}
for _, m := range miles {
@@ -1112,7 +1103,7 @@ func Milestones(c *context.Context) {
}
c.Data["IsShowClosed"] = isShowClosed
- c.HTML(200, MILESTONE)
+ c.Success(MILESTONE)
}
func NewMilestone(c *context.Context) {
@@ -1121,7 +1112,7 @@ func NewMilestone(c *context.Context) {
c.Data["PageIsMilestones"] = true
c.Data["RequireDatetimepicker"] = true
c.Data["DateLang"] = conf.I18n.DateLang(c.Locale.Language())
- c.HTML(200, MILESTONE_NEW)
+ c.Success(MILESTONE_NEW)
}
func NewMilestonePost(c *context.Context, f form.CreateMilestone) {
@@ -1132,7 +1123,7 @@ func NewMilestonePost(c *context.Context, f form.CreateMilestone) {
c.Data["DateLang"] = conf.I18n.DateLang(c.Locale.Language())
if c.HasError() {
- c.HTML(200, MILESTONE_NEW)
+ c.Success(MILESTONE_NEW)
return
}
@@ -1152,7 +1143,7 @@ func NewMilestonePost(c *context.Context, f form.CreateMilestone) {
Content: f.Content,
Deadline: deadline,
}); err != nil {
- c.Handle(500, "NewMilestone", err)
+ c.Error(err, "new milestone")
return
}
@@ -1169,11 +1160,7 @@ func EditMilestone(c *context.Context) {
m, err := db.GetMilestoneByRepoID(c.Repo.Repository.ID, c.ParamsInt64(":id"))
if err != nil {
- if db.IsErrMilestoneNotExist(err) {
- c.Handle(404, "", nil)
- } else {
- c.Handle(500, "GetMilestoneByRepoID", err)
- }
+ c.NotFoundOrError(err, "get milestone by repository ID")
return
}
c.Data["title"] = m.Name
@@ -1181,7 +1168,7 @@ func EditMilestone(c *context.Context) {
if len(m.DeadlineString) > 0 {
c.Data["deadline"] = m.DeadlineString
}
- c.HTML(200, MILESTONE_NEW)
+ c.Success(MILESTONE_NEW)
}
func EditMilestonePost(c *context.Context, f form.CreateMilestone) {
@@ -1192,7 +1179,7 @@ func EditMilestonePost(c *context.Context, f form.CreateMilestone) {
c.Data["DateLang"] = conf.I18n.DateLang(c.Locale.Language())
if c.HasError() {
- c.HTML(200, MILESTONE_NEW)
+ c.Success(MILESTONE_NEW)
return
}
@@ -1208,18 +1195,14 @@ func EditMilestonePost(c *context.Context, f form.CreateMilestone) {
m, err := db.GetMilestoneByRepoID(c.Repo.Repository.ID, c.ParamsInt64(":id"))
if err != nil {
- if db.IsErrMilestoneNotExist(err) {
- c.Handle(404, "", nil)
- } else {
- c.Handle(500, "GetMilestoneByRepoID", err)
- }
+ c.NotFoundOrError(err, "get milestone by repository ID")
return
}
m.Name = f.Title
m.Content = f.Content
m.Deadline = deadline
if err = db.UpdateMilestone(m); err != nil {
- c.Handle(500, "UpdateMilestone", err)
+ c.Error(err, "update milestone")
return
}
@@ -1230,11 +1213,7 @@ func EditMilestonePost(c *context.Context, f form.CreateMilestone) {
func ChangeMilestonStatus(c *context.Context) {
m, err := db.GetMilestoneByRepoID(c.Repo.Repository.ID, c.ParamsInt64(":id"))
if err != nil {
- if db.IsErrMilestoneNotExist(err) {
- c.Handle(404, "", err)
- } else {
- c.Handle(500, "GetMilestoneByRepoID", err)
- }
+ c.NotFoundOrError(err, "get milestone by repository ID")
return
}
@@ -1246,7 +1225,7 @@ func ChangeMilestonStatus(c *context.Context) {
case "open":
if m.IsClosed {
if err = db.ChangeMilestoneStatus(m, false); err != nil {
- c.Handle(500, "ChangeMilestoneStatus", err)
+ c.Error(err, "change milestone status to open")
return
}
}
@@ -1255,7 +1234,7 @@ func ChangeMilestonStatus(c *context.Context) {
if !m.IsClosed {
m.ClosedDate = time.Now()
if err = db.ChangeMilestoneStatus(m, true); err != nil {
- c.Handle(500, "ChangeMilestoneStatus", err)
+ c.Error(err, "change milestone status to closed")
return
}
}
@@ -1272,7 +1251,7 @@ func DeleteMilestone(c *context.Context) {
c.Flash.Success(c.Tr("repo.milestones.deletion_success"))
}
- c.JSON(200, map[string]interface{}{
+ c.JSONSuccess(map[string]interface{}{
"redirect": c.Repo.MakeURL("milestones"),
})
}
diff --git a/internal/route/repo/pull.go b/internal/route/repo/pull.go
index a1b47480..14e9a5c3 100644
--- a/internal/route/repo/pull.go
+++ b/internal/route/repo/pull.go
@@ -5,6 +5,7 @@
package repo
import (
+ "net/http"
"path"
"strings"
@@ -16,7 +17,6 @@ import (
"gogs.io/gogs/internal/conf"
"gogs.io/gogs/internal/context"
"gogs.io/gogs/internal/db"
- "gogs.io/gogs/internal/db/errors"
"gogs.io/gogs/internal/form"
"gogs.io/gogs/internal/gitutil"
"gogs.io/gogs/internal/tool"
@@ -49,7 +49,7 @@ var (
func parseBaseRepository(c *context.Context) *db.Repository {
baseRepo, err := db.GetRepositoryByID(c.ParamsInt64(":repoid"))
if err != nil {
- c.NotFoundOrServerError("GetRepositoryByID", errors.IsRepoNotExist, err)
+ c.NotFoundOrError(err, "get repository by ID")
return nil
}
@@ -63,13 +63,13 @@ func parseBaseRepository(c *context.Context) *db.Repository {
c.Data["IsPrivate"] = baseRepo.IsPrivate
if err = baseRepo.GetOwner(); err != nil {
- c.ServerError("GetOwner", err)
+ c.Error(err, "get owner")
return nil
}
c.Data["ForkFrom"] = baseRepo.Owner.Name + "/" + baseRepo.Name
if err := c.User.GetOrganizations(true); err != nil {
- c.ServerError("GetOrganizations", err)
+ c.Error(err, "get organizations")
return nil
}
c.Data["Orgs"] = c.User.Orgs
@@ -110,7 +110,7 @@ func ForkPost(c *context.Context, f form.CreateRepo) {
repo, has, err := db.HasForkedRepo(ctxUser.ID, baseRepo.ID)
if err != nil {
- c.ServerError("HasForkedRepo", err)
+ c.Error(err, "check forked repository")
return
} else if has {
c.Redirect(repo.Link())
@@ -119,7 +119,7 @@ func ForkPost(c *context.Context, f form.CreateRepo) {
// Check ownership of organization.
if ctxUser.IsOrganization() && !ctxUser.IsOwnedBy(c.User.ID) {
- c.Error(403)
+ c.Status(http.StatusForbidden)
return
}
@@ -133,7 +133,7 @@ func ForkPost(c *context.Context, f form.CreateRepo) {
if err != nil {
c.Data["Err_RepoName"] = true
switch {
- case errors.IsReachLimitOfRepo(err):
+ case db.IsErrReachLimitOfRepo(err):
c.RenderWithErr(c.Tr("repo.form.reach_limit_of_creation", c.User.RepoCreationNum()), FORK, &f)
case db.IsErrRepoAlreadyExist(err):
c.RenderWithErr(c.Tr("repo.settings.new_owner_has_same_repo"), FORK, &f)
@@ -142,7 +142,7 @@ func ForkPost(c *context.Context, f form.CreateRepo) {
case db.IsErrNamePatternNotAllowed(err):
c.RenderWithErr(c.Tr("repo.form.name_pattern_not_allowed", err.(db.ErrNamePatternNotAllowed).Pattern), FORK, &f)
default:
- c.ServerError("ForkPost", err)
+ c.Error(err, "fork repository")
}
return
}
@@ -154,21 +154,21 @@ func ForkPost(c *context.Context, f form.CreateRepo) {
func checkPullInfo(c *context.Context) *db.Issue {
issue, err := db.GetIssueByIndex(c.Repo.Repository.ID, c.ParamsInt64(":index"))
if err != nil {
- c.NotFoundOrServerError("GetIssueByIndex", errors.IsIssueNotExist, err)
+ c.NotFoundOrError(err, "get issue by index")
return nil
}
c.Data["Title"] = issue.Title
c.Data["Issue"] = issue
if !issue.IsPull {
- c.Handle(404, "ViewPullCommits", nil)
+ c.NotFound()
return nil
}
if c.IsLogged {
// Update issue-user.
if err = issue.ReadBy(c.User.ID); err != nil {
- c.ServerError("ReadBy", err)
+ c.Error(err, "mark read by")
return nil
}
}
@@ -185,14 +185,14 @@ func PrepareMergedViewPullInfo(c *context.Context, issue *db.Issue) {
var err error
c.Data["NumCommits"], err = c.Repo.GitRepo.RevListCount([]string{pull.MergeBase + "..." + pull.MergedCommitID})
if err != nil {
- c.ServerError("Repo.GitRepo.CommitsCountBetween", err)
+ c.Error(err, "count commits")
return
}
names, err := c.Repo.GitRepo.DiffNameOnly(pull.MergeBase, pull.MergedCommitID, git.DiffNameOnlyOptions{NeedsMergeBase: true})
c.Data["NumFiles"] = len(names)
if err != nil {
- c.ServerError("Repo.GitRepo.FilesCountBetween", err)
+ c.Error(err, "get changed files")
return
}
}
@@ -212,7 +212,7 @@ func PrepareViewPullInfo(c *context.Context, issue *db.Issue) *gitutil.PullReque
if pull.HeadRepo != nil {
headGitRepo, err = git.Open(pull.HeadRepo.RepoPath())
if err != nil {
- c.ServerError("open repository", err)
+ c.Error(err, "open repository")
return nil
}
}
@@ -236,7 +236,7 @@ func PrepareViewPullInfo(c *context.Context, issue *db.Issue) *gitutil.PullReque
return nil
}
- c.ServerError("GetPullRequestInfo", err)
+ c.Error(err, "get pull request meta")
return nil
}
c.Data["NumCommits"] = len(prMeta.Commits)
@@ -267,17 +267,17 @@ func ViewPullCommits(c *context.Context) {
}
startCommit, err := c.Repo.GitRepo.CatFileCommit(pull.MergeBase)
if err != nil {
- c.ServerError("get commit of merge base", err)
+ c.Error(err, "get commit of merge base")
return
}
endCommit, err := c.Repo.GitRepo.CatFileCommit(pull.MergedCommitID)
if err != nil {
- c.ServerError("get merged commit", err)
+ c.Error(err, "get merged commit")
return
}
commits, err = c.Repo.GitRepo.RevList([]string{startCommit.ID.String() + "..." + endCommit.ID.String()})
if err != nil {
- c.ServerError("list commits", err)
+ c.Error(err, "list commits")
return
}
@@ -330,7 +330,7 @@ func ViewPullFiles(c *context.Context) {
if c.Written() {
return
} else if prInfo == nil {
- c.Handle(404, "ViewPullFiles", nil)
+ c.NotFound()
return
}
@@ -338,13 +338,13 @@ func ViewPullFiles(c *context.Context) {
headGitRepo, err := git.Open(headRepoPath)
if err != nil {
- c.ServerError("open repository", err)
+ c.Error(err, "open repository")
return
}
headCommitID, err := headGitRepo.BranchCommitID(pull.HeadBranch)
if err != nil {
- c.ServerError("get head branch commit ID", err)
+ c.Error(err, "get head branch commit ID")
return
}
@@ -359,7 +359,7 @@ func ViewPullFiles(c *context.Context) {
git.DiffOptions{Base: startCommitID},
)
if err != nil {
- c.ServerError("get diff", err)
+ c.Error(err, "get diff")
return
}
c.Data["Diff"] = diff
@@ -367,7 +367,7 @@ func ViewPullFiles(c *context.Context) {
commit, err := gitRepo.CatFileCommit(endCommitID)
if err != nil {
- c.ServerError("get commit", err)
+ c.Error(err, "get commit")
return
}
@@ -406,7 +406,7 @@ func MergePullRequest(c *context.Context) {
pr, err := db.GetPullRequestByIssueID(issue.ID)
if err != nil {
- c.NotFoundOrServerError("GetPullRequestByIssueID", db.IsErrPullRequestNotExist, err)
+ c.NotFoundOrError(err, "get pull request by issue ID")
return
}
@@ -418,7 +418,7 @@ func MergePullRequest(c *context.Context) {
pr.Issue = issue
pr.Issue.Repo = c.Repo.Repository
if err = pr.Merge(c.User, c.Repo.GitRepo, db.MergeStyle(c.Query("merge_style")), c.Query("commit_description")); err != nil {
- c.ServerError("Merge", err)
+ c.Error(err, "merge")
return
}
@@ -460,7 +460,7 @@ func ParseCompareInfo(c *context.Context) (*db.User, *db.Repository, *git.Reposi
} else if len(headInfos) == 2 {
headUser, err = db.GetUserByName(headInfos[0])
if err != nil {
- c.NotFoundOrServerError("GetUserByName", errors.IsUserNotExist, err)
+ c.NotFoundOrError(err, "get user by name")
return nil, nil, nil, nil, "", ""
}
headBranch = headInfos[1]
@@ -491,7 +491,7 @@ func ParseCompareInfo(c *context.Context) (*db.User, *db.Repository, *git.Reposi
var has bool
headRepo, has, err = db.HasForkedRepo(headUser.ID, baseRepo.ID)
if err != nil {
- c.ServerError("HasForkedRepo", err)
+ c.Error(err, "get forked repository")
return nil, nil, nil, nil, "", ""
} else if !has {
log.Trace("ParseCompareInfo [base_repo_id: %d]: does not have fork or in same repository", baseRepo.ID)
@@ -501,7 +501,7 @@ func ParseCompareInfo(c *context.Context) (*db.User, *db.Repository, *git.Reposi
headGitRepo, err = git.Open(db.RepoPath(headUser.Name, headRepo.Name))
if err != nil {
- c.ServerError("open repository", err)
+ c.Error(err, "open repository")
return nil, nil, nil, nil, "", ""
}
} else {
@@ -523,7 +523,7 @@ func ParseCompareInfo(c *context.Context) (*db.User, *db.Repository, *git.Reposi
headBranches, err := headGitRepo.Branches()
if err != nil {
- c.ServerError("get branches", err)
+ c.Error(err, "get branches")
return nil, nil, nil, nil, "", ""
}
c.Data["HeadBranches"] = headBranches
@@ -535,7 +535,7 @@ func ParseCompareInfo(c *context.Context) (*db.User, *db.Repository, *git.Reposi
c.Data["IsNoMergeBase"] = true
c.Success(COMPARE_PULL)
} else {
- c.ServerError("get pull request meta", err)
+ c.Error(err, "get pull request meta")
}
return nil, nil, nil, nil, "", ""
}
@@ -563,7 +563,7 @@ func PrepareCompareDiff(
headCommitID, err := headGitRepo.BranchCommitID(headBranch)
if err != nil {
- c.ServerError("get head branch commit ID", err)
+ c.Error(err, "get head branch commit ID")
return false
}
c.Data["AfterCommitID"] = headCommitID
@@ -578,7 +578,7 @@ func PrepareCompareDiff(
git.DiffOptions{Base: meta.MergeBase},
)
if err != nil {
- c.ServerError("get repository diff", err)
+ c.Error(err, "get repository diff")
return false
}
c.Data["Diff"] = diff
@@ -586,7 +586,7 @@ func PrepareCompareDiff(
headCommit, err := headGitRepo.CatFileCommit(headCommitID)
if err != nil {
- c.ServerError("get head commit", err)
+ c.Error(err, "get head commit")
return false
}
@@ -619,7 +619,7 @@ func CompareAndPullRequest(c *context.Context) {
pr, err := db.GetUnmergedPullRequest(headRepo.ID, c.Repo.Repository.ID, headBranch, baseBranch)
if err != nil {
if !db.IsErrPullRequestNotExist(err) {
- c.ServerError("GetUnmergedPullRequest", err)
+ c.Error(err, "get unmerged pull request")
return
}
} else {
@@ -701,7 +701,7 @@ func CompareAndPullRequestPost(c *context.Context, f form.NewIssue) {
patch, err := headGitRepo.DiffBinary(meta.MergeBase, headBranch)
if err != nil {
- c.ServerError("get patch", err)
+ c.Error(err, "get patch")
return
}
@@ -730,10 +730,10 @@ func CompareAndPullRequestPost(c *context.Context, f form.NewIssue) {
// FIXME: check error in the case two people send pull request at almost same time, give nice error prompt
// instead of 500.
if err := db.NewPullRequest(repo, pullIssue, labelIDs, attachments, pullRequest, patch); err != nil {
- c.ServerError("NewPullRequest", err)
+ c.Error(err, "new pull request")
return
} else if err := pullRequest.PushToBaseRepo(); err != nil {
- c.ServerError("PushToBaseRepo", err)
+ c.Error(err, "push to base repository")
return
}
@@ -744,13 +744,13 @@ func CompareAndPullRequestPost(c *context.Context, f form.NewIssue) {
func parseOwnerAndRepo(c *context.Context) (*db.User, *db.Repository) {
owner, err := db.GetUserByName(c.Params(":username"))
if err != nil {
- c.NotFoundOrServerError("GetUserByName", errors.IsUserNotExist, err)
+ c.NotFoundOrError(err, "get user by name")
return nil, nil
}
repo, err := db.GetRepositoryByName(owner.ID, c.Params(":reponame"))
if err != nil {
- c.NotFoundOrServerError("GetRepositoryByName", errors.IsRepoNotExist, err)
+ c.NotFoundOrError(err, "get repository by name")
return nil, nil
}
@@ -762,7 +762,7 @@ func TriggerTask(c *context.Context) {
branch := c.Query("branch")
secret := c.Query("secret")
if len(branch) == 0 || len(secret) == 0 || pusherID <= 0 {
- c.Error(404)
+ c.NotFound()
log.Trace("TriggerTask: branch or secret is empty, or pusher ID is not valid")
return
}
@@ -771,14 +771,14 @@ func TriggerTask(c *context.Context) {
return
}
if secret != tool.MD5(owner.Salt) {
- c.Error(404)
+ c.NotFound()
log.Trace("TriggerTask [%s/%s]: invalid secret", owner.Name, repo.Name)
return
}
pusher, err := db.GetUserByID(pusherID)
if err != nil {
- c.NotFoundOrServerError("GetUserByID", errors.IsUserNotExist, err)
+ c.NotFoundOrError(err, "get user by ID")
return
}
diff --git a/internal/route/repo/release.go b/internal/route/repo/release.go
index f945e4fc..cf05b800 100644
--- a/internal/route/repo/release.go
+++ b/internal/route/repo/release.go
@@ -53,13 +53,13 @@ func Releases(c *context.Context) {
tagsPage, err := gitutil.Module.ListTagsAfter(c.Repo.GitRepo.Path(), c.Query("after"), 10)
if err != nil {
- c.ServerError("get tags", err)
+ c.Error(err, "get tags")
return
}
releases, err := db.GetPublishedReleasesByRepoID(c.Repo.Repository.ID, tagsPage.Tags...)
if err != nil {
- c.Handle(500, "GetPublishedReleasesByRepoID", err)
+ c.Error(err, "get published releases by repository ID")
return
}
@@ -75,12 +75,12 @@ func Releases(c *context.Context) {
releases[j] = nil // Mark as used.
if err = r.LoadAttributes(); err != nil {
- c.Handle(500, "LoadAttributes", err)
+ c.Error(err, "load attributes")
return
}
if err := calReleaseNumCommitsBehind(c.Repo, r, countCache); err != nil {
- c.Handle(500, "calReleaseNumCommitsBehind", err)
+ c.Error(err, "calculate number of commits after release")
return
}
@@ -93,7 +93,7 @@ func Releases(c *context.Context) {
if results[i] == nil {
commit, err := c.Repo.GitRepo.TagCommit(rawTag)
if err != nil {
- c.Handle(500, "get tag commit", err)
+ c.Error(err, "get tag commit")
return
}
@@ -105,7 +105,7 @@ func Releases(c *context.Context) {
results[i].NumCommits, err = commit.CommitsCount()
if err != nil {
- c.ServerError("count commits", err)
+ c.Error(err, "count commits")
return
}
results[i].NumCommitsBehind = c.Repo.CommitsCount - results[i].NumCommits
@@ -118,18 +118,18 @@ func Releases(c *context.Context) {
if tagsPage.HasLatest {
drafts, err = db.GetDraftReleasesByRepoID(c.Repo.Repository.ID)
if err != nil {
- c.Handle(500, "GetDraftReleasesByRepoID", err)
+ c.Error(err, "get draft releases by repository ID")
return
}
for _, r := range drafts {
if err = r.LoadAttributes(); err != nil {
- c.Handle(500, "LoadAttributes", err)
+ c.Error(err, "load attributes")
return
}
if err := calReleaseNumCommitsBehind(c.Repo, r, countCache); err != nil {
- c.Handle(500, "calReleaseNumCommitsBehind", err)
+ c.Error(err, "calculate number of commits after release")
return
}
@@ -148,7 +148,7 @@ func Releases(c *context.Context) {
if len(results) > 0 {
c.Data["NextAfter"] = results[len(results)-1].TagName
}
- c.HTML(200, RELEASES)
+ c.Success(RELEASES)
}
func renderReleaseAttachmentSettings(c *context.Context) {
@@ -164,7 +164,7 @@ func NewRelease(c *context.Context) {
c.Data["PageIsReleaseList"] = true
c.Data["tag_target"] = c.Repo.Repository.DefaultBranch
renderReleaseAttachmentSettings(c)
- c.HTML(200, RELEASE_NEW)
+ c.Success(RELEASE_NEW)
}
func NewReleasePost(c *context.Context, f form.NewRelease) {
@@ -173,7 +173,7 @@ func NewReleasePost(c *context.Context, f form.NewRelease) {
renderReleaseAttachmentSettings(c)
if c.HasError() {
- c.HTML(200, RELEASE_NEW)
+ c.Success(RELEASE_NEW)
return
}
@@ -194,13 +194,13 @@ func NewReleasePost(c *context.Context, f form.NewRelease) {
commit, err := c.Repo.GitRepo.BranchCommit(f.Target)
if err != nil {
- c.ServerError("get branch commit", err)
+ c.Error(err, "get branch commit")
return
}
commitsCount, err := commit.CommitsCount()
if err != nil {
- c.ServerError("count commits", err)
+ c.Error(err, "count commits")
return
}
@@ -230,7 +230,7 @@ func NewReleasePost(c *context.Context, f form.NewRelease) {
case db.IsErrInvalidTagName(err):
c.RenderWithErr(c.Tr("repo.release.tag_name_invalid"), RELEASE_NEW, &f)
default:
- c.Handle(500, "NewRelease", err)
+ c.Error(err, "new release")
}
return
}
@@ -248,11 +248,7 @@ func EditRelease(c *context.Context) {
tagName := c.Params("*")
rel, err := db.GetRelease(c.Repo.Repository.ID, tagName)
if err != nil {
- if db.IsErrReleaseNotExist(err) {
- c.Handle(404, "GetRelease", err)
- } else {
- c.Handle(500, "GetRelease", err)
- }
+ c.NotFoundOrError(err, "get release")
return
}
c.Data["ID"] = rel.ID
@@ -264,7 +260,7 @@ func EditRelease(c *context.Context) {
c.Data["prerelease"] = rel.IsPrerelease
c.Data["IsDraft"] = rel.IsDraft
- c.HTML(200, RELEASE_NEW)
+ c.Success(RELEASE_NEW)
}
func EditReleasePost(c *context.Context, f form.EditRelease) {
@@ -276,11 +272,7 @@ func EditReleasePost(c *context.Context, f form.EditRelease) {
tagName := c.Params("*")
rel, err := db.GetRelease(c.Repo.Repository.ID, tagName)
if err != nil {
- if db.IsErrReleaseNotExist(err) {
- c.Handle(404, "GetRelease", err)
- } else {
- c.Handle(500, "GetRelease", err)
- }
+ c.NotFoundOrError(err, "get release")
return
}
c.Data["tag_name"] = rel.TagName
@@ -292,7 +284,7 @@ func EditReleasePost(c *context.Context, f form.EditRelease) {
c.Data["IsDraft"] = rel.IsDraft
if c.HasError() {
- c.HTML(200, RELEASE_NEW)
+ c.Success(RELEASE_NEW)
return
}
@@ -307,7 +299,7 @@ func EditReleasePost(c *context.Context, f form.EditRelease) {
rel.IsDraft = len(f.Draft) > 0
rel.IsPrerelease = f.Prerelease
if err = db.UpdateRelease(c.User, c.Repo.GitRepo, rel, isPublish, attachments); err != nil {
- c.Handle(500, "UpdateRelease", err)
+ c.Error(err, "update release")
return
}
c.Redirect(c.Repo.RepoLink + "/releases")
@@ -328,7 +320,7 @@ func DeleteRelease(c *context.Context) {
c.Flash.Success(c.Tr("repo.release.deletion_success"))
}
- c.JSON(200, map[string]interface{}{
+ c.JSONSuccess( map[string]interface{}{
"redirect": c.Repo.RepoLink + "/releases",
})
}
diff --git a/internal/route/repo/repo.go b/internal/route/repo/repo.go
index a0bd25fe..c55314d3 100644
--- a/internal/route/repo/repo.go
+++ b/internal/route/repo/repo.go
@@ -5,7 +5,7 @@
package repo
import (
- "fmt"
+ "net/http"
"os"
"path"
"path/filepath"
@@ -19,7 +19,6 @@ import (
"gogs.io/gogs/internal/conf"
"gogs.io/gogs/internal/context"
"gogs.io/gogs/internal/db"
- "gogs.io/gogs/internal/db/errors"
"gogs.io/gogs/internal/form"
"gogs.io/gogs/internal/tool"
)
@@ -31,14 +30,14 @@ const (
func MustBeNotBare(c *context.Context) {
if c.Repo.Repository.IsBare {
- c.Handle(404, "MustBeNotBare", nil)
+ c.NotFound()
}
}
func checkContextUser(c *context.Context, uid int64) *db.User {
orgs, err := db.GetOwnedOrgsByUserIDDesc(c.User.ID, "updated_unix")
if err != nil {
- c.Handle(500, "GetOwnedOrgsByUserIDDesc", err)
+ c.Error(err, "get owned organization by user ID")
return nil
}
c.Data["Orgs"] = orgs
@@ -49,18 +48,18 @@ func checkContextUser(c *context.Context, uid int64) *db.User {
}
org, err := db.GetUserByID(uid)
- if errors.IsUserNotExist(err) {
+ if db.IsErrUserNotExist(err) {
return c.User
}
if err != nil {
- c.Handle(500, "GetUserByID", fmt.Errorf("[%d]: %v", uid, err))
+ c.Error(err, "get user by ID")
return nil
}
// Check ownership of organization.
if !org.IsOrganization() || !(c.User.IsAdmin || org.IsOwnedBy(c.User.ID)) {
- c.Error(403)
+ c.Status(http.StatusForbidden)
return nil
}
return org
@@ -84,12 +83,12 @@ func Create(c *context.Context) {
}
c.Data["ContextUser"] = ctxUser
- c.HTML(200, CREATE)
+ c.Success(CREATE)
}
func handleCreateError(c *context.Context, owner *db.User, err error, name, tpl string, form interface{}) {
switch {
- case errors.IsReachLimitOfRepo(err):
+ case db.IsErrReachLimitOfRepo(err):
c.RenderWithErr(c.Tr("repo.form.reach_limit_of_creation", owner.RepoCreationNum()), tpl, form)
case db.IsErrRepoAlreadyExist(err):
c.Data["Err_RepoName"] = true
@@ -101,7 +100,7 @@ func handleCreateError(c *context.Context, owner *db.User, err error, name, tpl
c.Data["Err_RepoName"] = true
c.RenderWithErr(c.Tr("repo.form.name_pattern_not_allowed", err.(db.ErrNamePatternNotAllowed).Pattern), tpl, form)
default:
- c.Handle(500, name, err)
+ c.Error(err, name)
}
}
@@ -119,7 +118,7 @@ func CreatePost(c *context.Context, f form.CreateRepo) {
c.Data["ContextUser"] = ctxUser
if c.HasError() {
- c.HTML(200, CREATE)
+ c.Success(CREATE)
return
}
@@ -159,7 +158,7 @@ func Migrate(c *context.Context) {
}
c.Data["ContextUser"] = ctxUser
- c.HTML(200, MIGRATE)
+ c.Success(MIGRATE)
}
func MigratePost(c *context.Context, f form.MigrateRepo) {
@@ -172,7 +171,7 @@ func MigratePost(c *context.Context, f form.MigrateRepo) {
c.Data["ContextUser"] = ctxUser
if c.HasError() {
- c.HTML(200, MIGRATE)
+ c.Success(MIGRATE)
return
}
@@ -189,10 +188,10 @@ func MigratePost(c *context.Context, f form.MigrateRepo) {
case addrErr.IsInvalidPath:
c.RenderWithErr(c.Tr("repo.migrate.invalid_local_path"), MIGRATE, &f)
default:
- c.Handle(500, "Unknown error", err)
+ c.Error(err, "unexpected error")
}
} else {
- c.Handle(500, "ParseRemoteAddr", err)
+ c.Error(err, "parse remote address")
}
return
}
@@ -259,7 +258,7 @@ func Action(c *context.Context) {
}
if err != nil {
- c.ServerError(fmt.Sprintf("Action (%s)", c.Params(":action")), err)
+ c.Errorf(err, "action %q", c.Params(":action"))
return
}
@@ -290,14 +289,14 @@ func Download(c *context.Context) {
archiveFormat = git.ArchiveTarGz
default:
log.Trace("Unknown format: %s", uri)
- c.Error(404)
+ c.NotFound()
return
}
refName = strings.TrimSuffix(uri, ext)
if !com.IsDir(archivePath) {
if err := os.MkdirAll(archivePath, os.ModePerm); err != nil {
- c.Handle(500, "Download -> os.MkdirAll(archivePath)", err)
+ c.Error(err, "create archive directory")
return
}
}
@@ -311,13 +310,13 @@ func Download(c *context.Context) {
if gitRepo.HasBranch(refName) {
commit, err = gitRepo.BranchCommit(refName)
if err != nil {
- c.ServerError("get branch commit", err)
+ c.Error(err, "get branch commit")
return
}
} else if gitRepo.HasTag(refName) {
commit, err = gitRepo.TagCommit(refName)
if err != nil {
- c.ServerError("get tag commit", err)
+ c.Error(err, "get tag commit")
return
}
} else if len(refName) >= 7 && len(refName) <= 40 {
@@ -334,7 +333,7 @@ func Download(c *context.Context) {
archivePath = path.Join(archivePath, tool.ShortSHA1(commit.ID.String())+ext)
if !com.IsFile(archivePath) {
if err := commit.CreateArchive(archiveFormat, archivePath); err != nil {
- c.ServerError("creates archive", err)
+ c.Error(err, "creates archive")
return
}
}
diff --git a/internal/route/repo/setting.go b/internal/route/repo/setting.go
index bf463f4a..1c4446d0 100644
--- a/internal/route/repo/setting.go
+++ b/internal/route/repo/setting.go
@@ -7,7 +7,6 @@ package repo
import (
"fmt"
"io/ioutil"
- "os"
"strings"
"time"
@@ -21,6 +20,7 @@ import (
"gogs.io/gogs/internal/db/errors"
"gogs.io/gogs/internal/email"
"gogs.io/gogs/internal/form"
+ "gogs.io/gogs/internal/osutil"
"gogs.io/gogs/internal/tool"
)
@@ -72,7 +72,7 @@ func SettingsPost(c *context.Context, f form.RepoSetting) {
case db.IsErrNamePatternNotAllowed(err):
c.RenderWithErr(c.Tr("repo.form.name_pattern_not_allowed", err.(db.ErrNamePatternNotAllowed).Pattern), SETTINGS_OPTIONS, &f)
default:
- c.ServerError("ChangeRepositoryName", err)
+ c.Error(err, "change repository name")
}
return
}
@@ -94,7 +94,7 @@ func SettingsPost(c *context.Context, f form.RepoSetting) {
visibilityChanged := repo.IsPrivate != f.Private
repo.IsPrivate = f.Private
if err := db.UpdateRepository(repo, visibilityChanged); err != nil {
- c.ServerError("UpdateRepository", err)
+ c.Error(err, "update repository")
return
}
log.Trace("Repository basic settings updated: %s/%s", c.Repo.Owner.Name, repo.Name)
@@ -119,12 +119,12 @@ func SettingsPost(c *context.Context, f form.RepoSetting) {
c.Repo.Mirror.Interval = f.Interval
c.Repo.Mirror.NextSync = time.Now().Add(time.Duration(f.Interval) * time.Hour)
if err := db.UpdateMirror(c.Repo.Mirror); err != nil {
- c.ServerError("UpdateMirror", err)
+ c.Error(err, "update mirror")
return
}
}
if err := c.Repo.Mirror.SaveAddress(f.MirrorAddress); err != nil {
- c.ServerError("SaveAddress", err)
+ c.Error(err, "save address")
return
}
@@ -157,7 +157,7 @@ func SettingsPost(c *context.Context, f form.RepoSetting) {
repo.PullsAllowRebase = f.PullsAllowRebase
if err := db.UpdateRepository(repo, false); err != nil {
- c.ServerError("UpdateRepository", err)
+ c.Error(err, "update repository")
return
}
log.Trace("Repository advanced settings updated: %s/%s", c.Repo.Owner.Name, repo.Name)
@@ -189,10 +189,10 @@ func SettingsPost(c *context.Context, f form.RepoSetting) {
repo.IsMirror = false
if _, err := db.CleanUpMigrateInfo(repo); err != nil {
- c.ServerError("CleanUpMigrateInfo", err)
+ c.Error(err, "clean up migrate info")
return
} else if err = db.DeleteMirrorByRepoID(c.Repo.Repository.ID); err != nil {
- c.ServerError("DeleteMirrorByRepoID", err)
+ c.Error(err, "delete mirror by repository ID")
return
}
log.Trace("Repository converted from mirror to regular: %s/%s", c.Repo.Owner.Name, repo.Name)
@@ -219,7 +219,7 @@ func SettingsPost(c *context.Context, f form.RepoSetting) {
newOwner := c.Query("new_owner_name")
isExist, err := db.IsUserExist(0, newOwner)
if err != nil {
- c.ServerError("IsUserExist", err)
+ c.Error(err, "check if user exists")
return
} else if !isExist {
c.RenderWithErr(c.Tr("form.enterred_invalid_owner_name"), SETTINGS_OPTIONS, nil)
@@ -230,7 +230,7 @@ func SettingsPost(c *context.Context, f form.RepoSetting) {
if db.IsErrRepoAlreadyExist(err) {
c.RenderWithErr(c.Tr("repo.settings.new_owner_has_same_repo"), SETTINGS_OPTIONS, nil)
} else {
- c.ServerError("TransferOwnership", err)
+ c.Error(err, "transfer ownership")
}
return
}
@@ -256,7 +256,7 @@ func SettingsPost(c *context.Context, f form.RepoSetting) {
}
if err := db.DeleteRepository(c.Repo.Owner.ID, repo.ID); err != nil {
- c.ServerError("DeleteRepository", err)
+ c.Error(err, "delete repository")
return
}
log.Trace("Repository deleted: %s/%s", c.Repo.Owner.Name, repo.Name)
@@ -286,7 +286,7 @@ func SettingsPost(c *context.Context, f form.RepoSetting) {
repo.EnableWiki = false
if err := db.UpdateRepository(repo, false); err != nil {
- c.ServerError("UpdateRepository", err)
+ c.Error(err, "update repository")
return
}
@@ -311,14 +311,14 @@ func SettingsAvatarPost(c *context.Context, f form.Avatar) {
} else {
c.Flash.Success(c.Tr("settings.update_avatar_success"))
}
- c.SubURLRedirect(c.Repo.RepoLink + "/settings")
+ c.RedirectSubpath(c.Repo.RepoLink + "/settings")
}
func SettingsDeleteAvatar(c *context.Context) {
if err := c.Repo.Repository.DeleteAvatar(); err != nil {
c.Flash.Error(fmt.Sprintf("Failed to delete avatar: %v", err))
}
- c.SubURLRedirect(c.Repo.RepoLink + "/settings")
+ c.RedirectSubpath(c.Repo.RepoLink + "/settings")
}
// FIXME: limit upload size
@@ -361,12 +361,12 @@ func SettingsCollaboration(c *context.Context) {
users, err := c.Repo.Repository.GetCollaborators()
if err != nil {
- c.Handle(500, "GetCollaborators", err)
+ c.Error(err, "get collaborators")
return
}
c.Data["Collaborators"] = users
- c.HTML(200, SETTINGS_COLLABORATION)
+ c.Success(SETTINGS_COLLABORATION)
}
func SettingsCollaborationPost(c *context.Context) {
@@ -378,11 +378,11 @@ func SettingsCollaborationPost(c *context.Context) {
u, err := db.GetUserByName(name)
if err != nil {
- if errors.IsUserNotExist(err) {
+ if db.IsErrUserNotExist(err) {
c.Flash.Error(c.Tr("form.user_not_exist"))
c.Redirect(conf.Server.Subpath + c.Req.URL.Path)
} else {
- c.Handle(500, "GetUserByName", err)
+ c.Error(err, "get user by name")
}
return
}
@@ -395,7 +395,7 @@ func SettingsCollaborationPost(c *context.Context) {
}
if err = c.Repo.Repository.AddCollaborator(u); err != nil {
- c.Handle(500, "AddCollaborator", err)
+ c.Error(err, "add collaborator")
return
}
@@ -425,7 +425,7 @@ func DeleteCollaboration(c *context.Context) {
c.Flash.Success(c.Tr("repo.settings.remove_collaborator_success"))
}
- c.JSON(200, map[string]interface{}{
+ c.JSONSuccess( map[string]interface{}{
"redirect": c.Repo.RepoLink + "/settings/collaboration",
})
}
@@ -436,13 +436,13 @@ func SettingsBranches(c *context.Context) {
if c.Repo.Repository.IsBare {
c.Flash.Info(c.Tr("repo.settings.branches_bare"), true)
- c.HTML(200, SETTINGS_BRANCHES)
+ c.Success(SETTINGS_BRANCHES)
return
}
protectBranches, err := db.GetProtectBranchesByRepoID(c.Repo.Repository.ID)
if err != nil {
- c.Handle(500, "GetProtectBranchesByRepoID", err)
+ c.Error(err, "get protect branch by repository ID")
return
}
@@ -455,7 +455,7 @@ func SettingsBranches(c *context.Context) {
}
c.Data["ProtectBranches"] = branches
- c.HTML(200, SETTINGS_BRANCHES)
+ c.Success(SETTINGS_BRANCHES)
}
func UpdateDefaultBranch(c *context.Context) {
@@ -473,7 +473,7 @@ func UpdateDefaultBranch(c *context.Context) {
}
if err := db.UpdateRepository(c.Repo.Repository, false); err != nil {
- c.Handle(500, "UpdateRepository", err)
+ c.Error(err, "update repository")
return
}
@@ -493,8 +493,8 @@ func SettingsProtectedBranch(c *context.Context) {
protectBranch, err := db.GetProtectBranchOfRepoByName(c.Repo.Repository.ID, branch)
if err != nil {
- if !errors.IsErrBranchNotExist(err) {
- c.Handle(500, "GetProtectBranchOfRepoByName", err)
+ if !db.IsErrBranchNotExist(err) {
+ c.Error(err, "get protect branch of repository by name")
return
}
@@ -507,7 +507,7 @@ func SettingsProtectedBranch(c *context.Context) {
if c.Repo.Owner.IsOrganization() {
users, err := c.Repo.Repository.GetWriters()
if err != nil {
- c.Handle(500, "Repo.Repository.GetPushers", err)
+ c.Error(err, "get writers")
return
}
c.Data["Users"] = users
@@ -515,7 +515,7 @@ func SettingsProtectedBranch(c *context.Context) {
teams, err := c.Repo.Owner.TeamsHaveAccessToRepo(c.Repo.Repository.ID, db.ACCESS_MODE_WRITE)
if err != nil {
- c.Handle(500, "Repo.Owner.TeamsHaveAccessToRepo", err)
+ c.Error(err, "get teams have access to the repository")
return
}
c.Data["Teams"] = teams
@@ -523,7 +523,7 @@ func SettingsProtectedBranch(c *context.Context) {
}
c.Data["Branch"] = protectBranch
- c.HTML(200, SETTINGS_PROTECTED_BRANCH)
+ c.Success(SETTINGS_PROTECTED_BRANCH)
}
func SettingsProtectedBranchPost(c *context.Context, f form.ProtectBranch) {
@@ -535,8 +535,8 @@ func SettingsProtectedBranchPost(c *context.Context, f form.ProtectBranch) {
protectBranch, err := db.GetProtectBranchOfRepoByName(c.Repo.Repository.ID, branch)
if err != nil {
- if !errors.IsErrBranchNotExist(err) {
- c.Handle(500, "GetProtectBranchOfRepoByName", err)
+ if !db.IsErrBranchNotExist(err) {
+ c.Error(err, "get protect branch of repository by name")
return
}
@@ -556,7 +556,7 @@ func SettingsProtectedBranchPost(c *context.Context, f form.ProtectBranch) {
err = db.UpdateProtectBranch(protectBranch)
}
if err != nil {
- c.Handle(500, "UpdateOrgProtectBranch/UpdateProtectBranch", err)
+ c.Error(err, "update protect branch")
return
}
@@ -570,12 +570,12 @@ func SettingsGitHooks(c *context.Context) {
hooks, err := c.Repo.GitRepo.Hooks("custom_hooks")
if err != nil {
- c.Handle(500, "Hooks", err)
+ c.Error(err, "get hooks")
return
}
c.Data["Hooks"] = hooks
- c.HTML(200, SETTINGS_GITHOOKS)
+ c.Success(SETTINGS_GITHOOKS)
}
func SettingsGitHooksEdit(c *context.Context) {
@@ -586,30 +586,22 @@ func SettingsGitHooksEdit(c *context.Context) {
name := c.Params(":name")
hook, err := c.Repo.GitRepo.Hook("custom_hooks", git.HookName(name))
if err != nil {
- if err == os.ErrNotExist {
- c.Handle(404, "GetHook", err)
- } else {
- c.Handle(500, "GetHook", err)
- }
+ c.NotFoundOrError(osutil.NewError(err), "get hook")
return
}
c.Data["Hook"] = hook
- c.HTML(200, SETTINGS_GITHOOK_EDIT)
+ c.Success(SETTINGS_GITHOOK_EDIT)
}
func SettingsGitHooksEditPost(c *context.Context) {
name := c.Params(":name")
hook, err := c.Repo.GitRepo.Hook("custom_hooks", git.HookName(name))
if err != nil {
- if err == os.ErrNotExist {
- c.Handle(404, "GetHook", err)
- } else {
- c.Handle(500, "GetHook", err)
- }
+ c.NotFoundOrError(osutil.NewError(err), "get hook")
return
}
if err = hook.Update(c.Query("content")); err != nil {
- c.Handle(500, "hook.Update", err)
+ c.Error(err, "update hook")
return
}
c.Redirect(c.Data["Link"].(string))
@@ -621,12 +613,12 @@ func SettingsDeployKeys(c *context.Context) {
keys, err := db.ListDeployKeys(c.Repo.Repository.ID)
if err != nil {
- c.Handle(500, "ListDeployKeys", err)
+ c.Error(err, "list deploy keys")
return
}
c.Data["Deploykeys"] = keys
- c.HTML(200, SETTINGS_DEPLOY_KEYS)
+ c.Success(SETTINGS_DEPLOY_KEYS)
}
func SettingsDeployKeysPost(c *context.Context, f form.AddSSHKey) {
@@ -635,13 +627,13 @@ func SettingsDeployKeysPost(c *context.Context, f form.AddSSHKey) {
keys, err := db.ListDeployKeys(c.Repo.Repository.ID)
if err != nil {
- c.Handle(500, "ListDeployKeys", err)
+ c.Error(err, "list deploy keys")
return
}
c.Data["Deploykeys"] = keys
if c.HasError() {
- c.HTML(200, SETTINGS_DEPLOY_KEYS)
+ c.Success(SETTINGS_DEPLOY_KEYS)
return
}
@@ -669,7 +661,7 @@ func SettingsDeployKeysPost(c *context.Context, f form.AddSSHKey) {
c.Data["Err_Title"] = true
c.RenderWithErr(c.Tr("repo.settings.key_name_used"), SETTINGS_DEPLOY_KEYS, &f)
default:
- c.Handle(500, "AddDeployKey", err)
+ c.Error(err, "add deploy key")
}
return
}
@@ -686,7 +678,7 @@ func DeleteDeployKey(c *context.Context) {
c.Flash.Success(c.Tr("repo.settings.deploy_key_deletion_success"))
}
- c.JSON(200, map[string]interface{}{
+ c.JSONSuccess( map[string]interface{}{
"redirect": c.Repo.RepoLink + "/settings/keys",
})
}
diff --git a/internal/route/repo/view.go b/internal/route/repo/view.go
index b07dafe2..378dc976 100644
--- a/internal/route/repo/view.go
+++ b/internal/route/repo/view.go
@@ -37,13 +37,13 @@ const (
func renderDirectory(c *context.Context, treeLink string) {
tree, err := c.Repo.Commit.Subtree(c.Repo.TreePath)
if err != nil {
- c.NotFoundOrServerError("get subtree", gitutil.IsErrRevisionNotExist, err)
+ c.NotFoundOrError(gitutil.NewError(err), "get subtree")
return
}
entries, err := tree.Entries()
if err != nil {
- c.ServerError("list entries", err)
+ c.Error(err, "list entries")
return
}
entries.Sort()
@@ -54,7 +54,7 @@ func renderDirectory(c *context.Context, treeLink string) {
Timeout: 5 * time.Minute,
})
if err != nil {
- c.ServerError("get commits info", err)
+ c.Error(err, "get commits info")
return
}
@@ -76,7 +76,7 @@ func renderDirectory(c *context.Context, treeLink string) {
p, err := readmeFile.Bytes()
if err != nil {
- c.ServerError("readmeFile.Data", err)
+ c.Error(err, "read file")
return
}
@@ -107,7 +107,7 @@ func renderDirectory(c *context.Context, treeLink string) {
if len(c.Repo.TreePath) > 0 {
latestCommit, err = c.Repo.Commit.CommitByPath(git.CommitByRevisionOptions{Path: c.Repo.TreePath})
if err != nil {
- c.ServerError("get commit by path", err)
+ c.Error(err, "get commit by path")
return
}
}
@@ -126,7 +126,7 @@ func renderFile(c *context.Context, entry *git.TreeEntry, treeLink, rawLink stri
blob := entry.Blob()
p, err := blob.Bytes()
if err != nil {
- c.Handle(500, "Data", err)
+ c.Error(err, "read blob")
return
}
@@ -232,7 +232,7 @@ func Home(c *context.Context) {
c.Data["PageIsViewFiles"] = true
if c.Repo.Repository.IsBare {
- c.HTML(200, BARE)
+ c.Success(BARE)
return
}
@@ -260,7 +260,7 @@ func Home(c *context.Context) {
var err error
c.Repo.CommitsCount, err = c.Repo.Commit.CommitsCount()
if err != nil {
- c.Handle(500, "CommitsCount", err)
+ c.Error(err, "count commits")
return
}
c.Data["CommitsCount"] = c.Repo.CommitsCount
@@ -270,7 +270,7 @@ func Home(c *context.Context) {
// Get current entry user currently looking at.
entry, err := c.Repo.Commit.TreeEntry(c.Repo.TreePath)
if err != nil {
- c.NotFoundOrServerError("get tree entry", gitutil.IsErrRevisionNotExist, err)
+ c.NotFoundOrError(gitutil.NewError(err), "get tree entry")
return
}
@@ -306,7 +306,7 @@ func Home(c *context.Context) {
c.Data["TreeLink"] = treeLink
c.Data["TreeNames"] = treeNames
c.Data["BranchLink"] = branchLink
- c.HTML(200, HOME)
+ c.Success(HOME)
}
func RenderUserCards(c *context.Context, total int, getter func(page int) ([]*db.User, error), tpl string) {
@@ -319,12 +319,12 @@ func RenderUserCards(c *context.Context, total int, getter func(page int) ([]*db
items, err := getter(pager.Current())
if err != nil {
- c.Handle(500, "getter", err)
+ c.Error(err, "getter")
return
}
c.Data["Cards"] = items
- c.HTML(200, tpl)
+ c.Success(tpl)
}
func Watchers(c *context.Context) {
@@ -346,17 +346,17 @@ func Forks(c *context.Context) {
forks, err := c.Repo.Repository.GetForks()
if err != nil {
- c.Handle(500, "GetForks", err)
+ c.Error(err, "get forks")
return
}
for _, fork := range forks {
if err = fork.GetOwner(); err != nil {
- c.Handle(500, "GetOwner", err)
+ c.Error(err, "get owner")
return
}
}
c.Data["Forks"] = forks
- c.HTML(200, FORKS)
+ c.Success(FORKS)
}
diff --git a/internal/route/repo/webhook.go b/internal/route/repo/webhook.go
index 705fd2ad..32c2069b 100644
--- a/internal/route/repo/webhook.go
+++ b/internal/route/repo/webhook.go
@@ -6,6 +6,7 @@ package repo
import (
"fmt"
+ "net/http"
"strings"
jsoniter "github.com/json-iterator/go"
@@ -36,12 +37,12 @@ func Webhooks(c *context.Context) {
ws, err := db.GetWebhooksByRepoID(c.Repo.Repository.ID)
if err != nil {
- c.Handle(500, "GetWebhooksByRepoID", err)
+ c.Error(err, "get webhooks by repository ID")
return
}
c.Data["Webhooks"] = ws
- c.HTML(200, WEBHOOKS)
+ c.Success(WEBHOOKS)
}
type OrgRepoCtx struct {
@@ -77,7 +78,7 @@ func getOrgRepoCtx(c *context.Context) (*OrgRepoCtx, error) {
func checkHookType(c *context.Context) string {
hookType := strings.ToLower(c.Params(":type"))
if !com.IsSliceContainsStr(conf.Webhook.Types, hookType) {
- c.Handle(404, "checkHookType", nil)
+ c.NotFound()
return ""
}
return hookType
@@ -91,7 +92,7 @@ func WebhooksNew(c *context.Context) {
orCtx, err := getOrgRepoCtx(c)
if err != nil {
- c.Handle(500, "getOrgRepoCtx", err)
+ c.Error(err, "get organization repository context")
return
}
@@ -101,7 +102,7 @@ func WebhooksNew(c *context.Context) {
}
c.Data["BaseLink"] = orCtx.Link
- c.HTML(200, orCtx.NewTemplate)
+ c.Success(orCtx.NewTemplate)
}
func ParseHookEvent(f form.Webhook) *db.HookEvent {
@@ -131,13 +132,13 @@ func WebHooksNewPost(c *context.Context, f form.NewWebhook) {
orCtx, err := getOrgRepoCtx(c)
if err != nil {
- c.Handle(500, "getOrgRepoCtx", err)
+ c.Error(err, "get organization repository context")
return
}
c.Data["BaseLink"] = orCtx.Link
if c.HasError() {
- c.HTML(200, orCtx.NewTemplate)
+ c.Success(orCtx.NewTemplate)
return
}
@@ -157,10 +158,10 @@ func WebHooksNewPost(c *context.Context, f form.NewWebhook) {
OrgID: orCtx.OrgID,
}
if err := w.UpdateEvent(); err != nil {
- c.Handle(500, "UpdateEvent", err)
+ c.Error(err, "update event")
return
} else if err := db.CreateWebhook(w); err != nil {
- c.Handle(500, "CreateWebhook", err)
+ c.Error(err, "create webhook")
return
}
@@ -176,12 +177,12 @@ func SlackHooksNewPost(c *context.Context, f form.NewSlackHook) {
orCtx, err := getOrgRepoCtx(c)
if err != nil {
- c.Handle(500, "getOrgRepoCtx", err)
+ c.Error(err, "get organization repository context")
return
}
if c.HasError() {
- c.HTML(200, orCtx.NewTemplate)
+ c.Success(orCtx.NewTemplate)
return
}
@@ -192,7 +193,7 @@ func SlackHooksNewPost(c *context.Context, f form.NewSlackHook) {
Color: f.Color,
})
if err != nil {
- c.Handle(500, "Marshal", err)
+ c.Error(err, "marshal JSON")
return
}
@@ -207,10 +208,10 @@ func SlackHooksNewPost(c *context.Context, f form.NewSlackHook) {
OrgID: orCtx.OrgID,
}
if err := w.UpdateEvent(); err != nil {
- c.Handle(500, "UpdateEvent", err)
+ c.Error(err, "update event")
return
} else if err := db.CreateWebhook(w); err != nil {
- c.Handle(500, "CreateWebhook", err)
+ c.Error(err, "create webhook")
return
}
@@ -227,12 +228,12 @@ func DiscordHooksNewPost(c *context.Context, f form.NewDiscordHook) {
orCtx, err := getOrgRepoCtx(c)
if err != nil {
- c.Handle(500, "getOrgRepoCtx", err)
+ c.Error(err, "get organization repository context")
return
}
if c.HasError() {
- c.HTML(200, orCtx.NewTemplate)
+ c.Success(orCtx.NewTemplate)
return
}
@@ -242,7 +243,7 @@ func DiscordHooksNewPost(c *context.Context, f form.NewDiscordHook) {
Color: f.Color,
})
if err != nil {
- c.Handle(500, "Marshal", err)
+ c.Error(err, "marshal JSON")
return
}
@@ -257,10 +258,10 @@ func DiscordHooksNewPost(c *context.Context, f form.NewDiscordHook) {
OrgID: orCtx.OrgID,
}
if err := w.UpdateEvent(); err != nil {
- c.Handle(500, "UpdateEvent", err)
+ c.Error(err, "update event")
return
} else if err := db.CreateWebhook(w); err != nil {
- c.Handle(500, "CreateWebhook", err)
+ c.Error(err, "create webhook")
return
}
@@ -276,12 +277,12 @@ func DingtalkHooksNewPost(c *context.Context, f form.NewDingtalkHook) {
orCtx, err := getOrgRepoCtx(c)
if err != nil {
- c.Handle(500, "getOrgRepoCtx", err)
+ c.Error(err, "get organization repository context")
return
}
if c.HasError() {
- c.HTML(200, orCtx.NewTemplate)
+ c.Success(orCtx.NewTemplate)
return
}
@@ -295,10 +296,10 @@ func DingtalkHooksNewPost(c *context.Context, f form.NewDingtalkHook) {
OrgID: orCtx.OrgID,
}
if err := w.UpdateEvent(); err != nil {
- c.Handle(500, "UpdateEvent", err)
+ c.Error(err, "update event")
return
} else if err := db.CreateWebhook(w); err != nil {
- c.Handle(500, "CreateWebhook", err)
+ c.Error(err, "create webhook")
return
}
@@ -311,7 +312,7 @@ func checkWebhook(c *context.Context) (*OrgRepoCtx, *db.Webhook) {
orCtx, err := getOrgRepoCtx(c)
if err != nil {
- c.Handle(500, "getOrgRepoCtx", err)
+ c.Error(err, "get organization repository context")
return nil, nil
}
c.Data["BaseLink"] = orCtx.Link
@@ -323,7 +324,7 @@ func checkWebhook(c *context.Context) (*OrgRepoCtx, *db.Webhook) {
w, err = db.GetWebhookByOrgID(c.Org.Organization.ID, c.ParamsInt64(":id"))
}
if err != nil {
- c.NotFoundOrServerError("GetWebhookOfRepoByID/GetWebhookByOrgID", errors.IsWebhookNotExist, err)
+ c.NotFoundOrError(err, "get webhook")
return nil, nil
}
@@ -342,7 +343,8 @@ func checkWebhook(c *context.Context) (*OrgRepoCtx, *db.Webhook) {
c.Data["History"], err = w.History(1)
if err != nil {
- c.Handle(500, "History", err)
+ c.Error(err, "get history")
+ return nil, nil
}
return orCtx, w
}
@@ -358,7 +360,7 @@ func WebHooksEdit(c *context.Context) {
}
c.Data["Webhook"] = w
- c.HTML(200, orCtx.NewTemplate)
+ c.Success(orCtx.NewTemplate)
}
func WebHooksEditPost(c *context.Context, f form.NewWebhook) {
@@ -373,7 +375,7 @@ func WebHooksEditPost(c *context.Context, f form.NewWebhook) {
c.Data["Webhook"] = w
if c.HasError() {
- c.HTML(200, orCtx.NewTemplate)
+ c.Success(orCtx.NewTemplate)
return
}
@@ -388,10 +390,10 @@ func WebHooksEditPost(c *context.Context, f form.NewWebhook) {
w.HookEvent = ParseHookEvent(f.Webhook)
w.IsActive = f.Active
if err := w.UpdateEvent(); err != nil {
- c.Handle(500, "UpdateEvent", err)
+ c.Error(err, "update event")
return
} else if err := db.UpdateWebhook(w); err != nil {
- c.Handle(500, "WebHooksEditPost", err)
+ c.Error(err, "update webhook")
return
}
@@ -411,7 +413,7 @@ func SlackHooksEditPost(c *context.Context, f form.NewSlackHook) {
c.Data["Webhook"] = w
if c.HasError() {
- c.HTML(200, orCtx.NewTemplate)
+ c.Success(orCtx.NewTemplate)
return
}
@@ -422,7 +424,7 @@ func SlackHooksEditPost(c *context.Context, f form.NewSlackHook) {
Color: f.Color,
})
if err != nil {
- c.Handle(500, "Marshal", err)
+ c.Error(err, "marshal JSON")
return
}
@@ -431,10 +433,10 @@ func SlackHooksEditPost(c *context.Context, f form.NewSlackHook) {
w.HookEvent = ParseHookEvent(f.Webhook)
w.IsActive = f.Active
if err := w.UpdateEvent(); err != nil {
- c.Handle(500, "UpdateEvent", err)
+ c.Error(err, "update event")
return
} else if err := db.UpdateWebhook(w); err != nil {
- c.Handle(500, "UpdateWebhook", err)
+ c.Error(err, "update webhook")
return
}
@@ -455,7 +457,7 @@ func DiscordHooksEditPost(c *context.Context, f form.NewDiscordHook) {
c.Data["Webhook"] = w
if c.HasError() {
- c.HTML(200, orCtx.NewTemplate)
+ c.Success(orCtx.NewTemplate)
return
}
@@ -465,7 +467,7 @@ func DiscordHooksEditPost(c *context.Context, f form.NewDiscordHook) {
Color: f.Color,
})
if err != nil {
- c.Handle(500, "Marshal", err)
+ c.Error(err, "marshal JSON")
return
}
@@ -474,10 +476,10 @@ func DiscordHooksEditPost(c *context.Context, f form.NewDiscordHook) {
w.HookEvent = ParseHookEvent(f.Webhook)
w.IsActive = f.Active
if err := w.UpdateEvent(); err != nil {
- c.Handle(500, "UpdateEvent", err)
+ c.Error(err, "update event")
return
} else if err := db.UpdateWebhook(w); err != nil {
- c.Handle(500, "UpdateWebhook", err)
+ c.Error(err, "update webhook")
return
}
@@ -497,7 +499,7 @@ func DingtalkHooksEditPost(c *context.Context, f form.NewDingtalkHook) {
c.Data["Webhook"] = w
if c.HasError() {
- c.HTML(200, orCtx.NewTemplate)
+ c.Success(orCtx.NewTemplate)
return
}
@@ -505,10 +507,10 @@ func DingtalkHooksEditPost(c *context.Context, f form.NewDingtalkHook) {
w.HookEvent = ParseHookEvent(f.Webhook)
w.IsActive = f.Active
if err := w.UpdateEvent(); err != nil {
- c.Handle(500, "UpdateEvent", err)
+ c.Error(err, "update event")
return
} else if err := db.UpdateWebhook(w); err != nil {
- c.Handle(500, "UpdateWebhook", err)
+ c.Error(err, "update webhook")
return
}
@@ -550,22 +552,22 @@ func TestWebhook(c *context.Context) {
author, err := db.GetUserByEmail(c.Repo.Commit.Author.Email)
if err == nil {
authorUsername = author.Name
- } else if !errors.IsUserNotExist(err) {
- c.Handle(500, "GetUserByEmail.(author)", err)
+ } else if !db.IsErrUserNotExist(err) {
+ c.Error(err, "get user by email")
return
}
user, err := db.GetUserByEmail(c.Repo.Commit.Committer.Email)
if err == nil {
committerUsername = user.Name
- } else if !errors.IsUserNotExist(err) {
- c.Handle(500, "GetUserByEmail.(committer)", err)
+ } else if !db.IsErrUserNotExist(err) {
+ c.Error(err, "get user by email")
return
}
nameStatus, err = c.Repo.Commit.ShowNameStatus()
if err != nil {
- c.Handle(500, "FileStatus", err)
+ c.Error(err, "get changed files")
return
}
}
@@ -600,34 +602,36 @@ func TestWebhook(c *context.Context) {
Sender: apiUser,
}
if err := db.TestWebhook(c.Repo.Repository, db.HOOK_EVENT_PUSH, p, c.ParamsInt64("id")); err != nil {
- c.Handle(500, "TestWebhook", err)
- } else {
- c.Flash.Info(c.Tr("repo.settings.webhook.test_delivery_success"))
- c.Status(200)
+ c.Error(err, "test webhook")
+ return
}
+
+ c.Flash.Info(c.Tr("repo.settings.webhook.test_delivery_success"))
+ c.Status(http.StatusOK)
}
func RedeliveryWebhook(c *context.Context) {
webhook, err := db.GetWebhookOfRepoByID(c.Repo.Repository.ID, c.ParamsInt64(":id"))
if err != nil {
- c.NotFoundOrServerError("GetWebhookOfRepoByID/GetWebhookByOrgID", errors.IsWebhookNotExist, err)
+ c.NotFoundOrError(err, "get webhook")
return
}
hookTask, err := db.GetHookTaskOfWebhookByUUID(webhook.ID, c.Query("uuid"))
if err != nil {
- c.NotFoundOrServerError("GetHookTaskOfWebhookByUUID/GetWebhookByOrgID", errors.IsHookTaskNotExist, err)
+ c.NotFoundOrError(err, "get hook task by UUID")
return
}
hookTask.IsDelivered = false
if err = db.UpdateHookTask(hookTask); err != nil {
- c.Handle(500, "UpdateHookTask", err)
- } else {
- go db.HookQueue.Add(c.Repo.Repository.ID)
- c.Flash.Info(c.Tr("repo.settings.webhook.redelivery_success", hookTask.UUID))
- c.Status(200)
+ c.Error(err, "update hook task")
+ return
}
+
+ go db.HookQueue.Add(c.Repo.Repository.ID)
+ c.Flash.Info(c.Tr("repo.settings.webhook.redelivery_success", hookTask.UUID))
+ c.Status(http.StatusOK)
}
func DeleteWebhook(c *context.Context) {
@@ -637,7 +641,7 @@ func DeleteWebhook(c *context.Context) {
c.Flash.Success(c.Tr("repo.settings.webhook_deletion_success"))
}
- c.JSON(200, map[string]interface{}{
+ c.JSONSuccess(map[string]interface{}{
"redirect": c.Repo.RepoLink + "/settings/hooks",
})
}
diff --git a/internal/route/repo/wiki.go b/internal/route/repo/wiki.go
index 91bc3c91..b9f754ee 100644
--- a/internal/route/repo/wiki.go
+++ b/internal/route/repo/wiki.go
@@ -26,7 +26,7 @@ const (
func MustEnableWiki(c *context.Context) {
if !c.Repo.Repository.EnableWiki {
- c.Handle(404, "MustEnableWiki", nil)
+ c.NotFound()
return
}
@@ -45,12 +45,12 @@ type PageMeta struct {
func renderWikiPage(c *context.Context, isViewPage bool) (*git.Repository, string) {
wikiRepo, err := git.Open(c.Repo.Repository.WikiPath())
if err != nil {
- c.ServerError("open repository", err)
+ c.Error(err, "open repository")
return nil, ""
}
commit, err := wikiRepo.BranchCommit("master")
if err != nil {
- c.ServerError("get branch commit", err)
+ c.Error(err, "get branch commit")
return nil, ""
}
@@ -58,7 +58,7 @@ func renderWikiPage(c *context.Context, isViewPage bool) (*git.Repository, strin
if isViewPage {
entries, err := commit.Entries()
if err != nil {
- c.ServerError("list entries", err)
+ c.Error(err, "list entries")
return nil, ""
}
pages := make([]PageMeta, 0, len(entries))
@@ -91,13 +91,13 @@ func renderWikiPage(c *context.Context, isViewPage bool) (*git.Repository, strin
if gitutil.IsErrRevisionNotExist(err) {
c.Redirect(c.Repo.RepoLink + "/wiki/_pages")
} else {
- c.ServerError("GetBlobByPath", err)
+ c.Error(err, "get blob")
}
return nil, ""
}
p, err := blob.Bytes()
if err != nil {
- c.ServerError("Data", err)
+ c.Error(err, "read blob")
return nil, ""
}
if isViewPage {
@@ -114,7 +114,7 @@ func Wiki(c *context.Context) {
if !c.Repo.Repository.HasWiki() {
c.Data["Title"] = c.Tr("repo.wiki")
- c.HTML(200, WIKI_START)
+ c.Success(WIKI_START)
return
}
@@ -126,12 +126,12 @@ func Wiki(c *context.Context) {
// Get last change information.
commits, err := wikiRepo.Log(git.RefsHeads+"master", git.LogOptions{Path: pageName + ".md"})
if err != nil {
- c.ServerError("get commits by path", err)
+ c.Error(err, "get commits by path")
return
}
c.Data["Author"] = commits[0].Author
- c.HTML(200, WIKI_VIEW)
+ c.Success(WIKI_VIEW)
}
func WikiPages(c *context.Context) {
@@ -145,18 +145,18 @@ func WikiPages(c *context.Context) {
wikiRepo, err := git.Open(c.Repo.Repository.WikiPath())
if err != nil {
- c.ServerError("open repository", err)
+ c.Error(err, "open repository")
return
}
commit, err := wikiRepo.BranchCommit("master")
if err != nil {
- c.ServerError("get branch commit", err)
+ c.Error(err, "get branch commit")
return
}
entries, err := commit.Entries()
if err != nil {
- c.ServerError("list entries", err)
+ c.Error(err, "list entries")
return
}
pages := make([]PageMeta, 0, len(entries))
@@ -164,7 +164,7 @@ func WikiPages(c *context.Context) {
if entries[i].Type() == git.ObjectBlob && strings.HasSuffix(entries[i].Name(), ".md") {
commits, err := wikiRepo.Log(git.RefsHeads+"master", git.LogOptions{Path: entries[i].Name()})
if err != nil {
- c.ServerError("get commits by path", err)
+ c.Error(err, "get commits by path")
return
}
name := strings.TrimSuffix(entries[i].Name(), ".md")
@@ -177,7 +177,7 @@ func WikiPages(c *context.Context) {
}
c.Data["Pages"] = pages
- c.HTML(200, WIKI_PAGES)
+ c.Success(WIKI_PAGES)
}
func NewWiki(c *context.Context) {
@@ -189,7 +189,7 @@ func NewWiki(c *context.Context) {
c.Data["title"] = "Home"
}
- c.HTML(200, WIKI_NEW)
+ c.Success(WIKI_NEW)
}
func NewWikiPost(c *context.Context, f form.NewWiki) {
@@ -198,7 +198,7 @@ func NewWikiPost(c *context.Context, f form.NewWiki) {
c.Data["RequireSimpleMDE"] = true
if c.HasError() {
- c.HTML(200, WIKI_NEW)
+ c.Success(WIKI_NEW)
return
}
@@ -207,7 +207,7 @@ func NewWikiPost(c *context.Context, f form.NewWiki) {
c.Data["Err_Title"] = true
c.RenderWithErr(c.Tr("repo.wiki.page_already_exists"), WIKI_NEW, &f)
} else {
- c.ServerError("AddWikiPage", err)
+ c.Error(err, "add wiki page")
}
return
}
@@ -230,7 +230,7 @@ func EditWiki(c *context.Context) {
return
}
- c.HTML(200, WIKI_NEW)
+ c.Success(WIKI_NEW)
}
func EditWikiPost(c *context.Context, f form.NewWiki) {
@@ -239,12 +239,12 @@ func EditWikiPost(c *context.Context, f form.NewWiki) {
c.Data["RequireSimpleMDE"] = true
if c.HasError() {
- c.HTML(200, WIKI_NEW)
+ c.Success(WIKI_NEW)
return
}
if err := c.Repo.Repository.EditWikiPage(c.User, f.OldTitle, f.Title, f.Content, f.Message); err != nil {
- c.ServerError("EditWikiPage", err)
+ c.Error(err, "edit wiki page")
return
}
@@ -259,11 +259,11 @@ func DeleteWikiPagePost(c *context.Context) {
pageName := db.ToWikiPageName(pageURL)
if err := c.Repo.Repository.DeleteWikiPage(c.User, pageName); err != nil {
- c.ServerError("DeleteWikiPage", err)
+ c.Error(err, "delete wiki page")
return
}
- c.JSON(200, map[string]interface{}{
+ c.JSONSuccess(map[string]interface{}{
"redirect": c.Repo.RepoLink + "/wiki/",
})
}