diff options
author | ᴜɴᴋɴᴡᴏɴ <u@gogs.io> | 2020-03-16 01:22:27 +0800 |
---|---|---|
committer | ᴜɴᴋɴᴡᴏɴ <u@gogs.io> | 2020-03-16 01:22:27 +0800 |
commit | 9e9ca66467116e9079a2639c00e9e623aca23015 (patch) | |
tree | dacdef5392608ff7107e4dd498959d4899e13e54 /internal/db/release.go | |
parent | 82ff0c5852f29daa5f95d965fd50665581e7ea3c (diff) |
refactor: unify error handling in routing layer
Diffstat (limited to 'internal/db/release.go')
-rw-r--r-- | internal/db/release.go | 27 |
1 files changed, 23 insertions, 4 deletions
diff --git a/internal/db/release.go b/internal/db/release.go index fa69fba8..71a72dae 100644 --- a/internal/db/release.go +++ b/internal/db/release.go @@ -16,7 +16,7 @@ import ( "github.com/gogs/git-module" api "github.com/gogs/go-gogs-client" - "gogs.io/gogs/internal/db/errors" + "gogs.io/gogs/internal/errutil" "gogs.io/gogs/internal/process" ) @@ -68,7 +68,7 @@ func (r *Release) loadAttributes(e Engine) (err error) { if r.Publisher == nil { r.Publisher, err = getUserByID(e, r.PublisherID) if err != nil { - if errors.IsUserNotExist(err) { + if IsErrUserNotExist(err) { r.PublisherID = -1 r.Publisher = NewGhostUser() } else { @@ -206,13 +206,32 @@ func NewRelease(gitRepo *git.Repository, r *Release, uuids []string) error { return nil } +var _ errutil.NotFound = (*ErrReleaseNotExist)(nil) + +type ErrReleaseNotExist struct { + args map[string]interface{} +} + +func IsErrReleaseNotExist(err error) bool { + _, ok := err.(ErrReleaseNotExist) + return ok +} + +func (err ErrReleaseNotExist) Error() string { + return fmt.Sprintf("release does not exist: %v", err.args) +} + +func (ErrReleaseNotExist) NotFound() bool { + return true +} + // GetRelease returns release by given ID. func GetRelease(repoID int64, tagName string) (*Release, error) { isExist, err := IsReleaseExist(repoID, tagName) if err != nil { return nil, err } else if !isExist { - return nil, ErrReleaseNotExist{0, tagName} + return nil, ErrReleaseNotExist{args: map[string]interface{}{"tag": tagName}} } r := &Release{RepoID: repoID, LowerTagName: strings.ToLower(tagName)} @@ -230,7 +249,7 @@ func GetReleaseByID(id int64) (*Release, error) { if err != nil { return nil, err } else if !has { - return nil, ErrReleaseNotExist{id, ""} + return nil, ErrReleaseNotExist{args: map[string]interface{}{"releaseID": id}} } return r, r.LoadAttributes() |