2015-03-16 08:04:27 +00:00
|
|
|
// Copyright 2015 The Gogs Authors. All rights reserved.
|
|
|
|
// Use of this source code is governed by a MIT-style
|
|
|
|
// license that can be found in the LICENSE file.
|
|
|
|
|
|
|
|
package models
|
|
|
|
|
|
|
|
import (
|
|
|
|
"fmt"
|
|
|
|
)
|
|
|
|
|
2016-11-22 11:00:36 +00:00
|
|
|
// ErrNameReserved ...
|
2015-03-26 21:11:47 +00:00
|
|
|
type ErrNameReserved struct {
|
|
|
|
Name string
|
|
|
|
}
|
|
|
|
|
2016-11-22 11:00:36 +00:00
|
|
|
// IsErrNameReserved ...
|
2015-03-26 21:11:47 +00:00
|
|
|
func IsErrNameReserved(err error) bool {
|
|
|
|
_, ok := err.(ErrNameReserved)
|
|
|
|
return ok
|
|
|
|
}
|
|
|
|
|
|
|
|
func (err ErrNameReserved) Error() string {
|
2015-11-03 23:40:52 +00:00
|
|
|
return fmt.Sprintf("name is reserved [name: %s]", err.Name)
|
2015-03-26 21:11:47 +00:00
|
|
|
}
|
|
|
|
|
2016-11-22 11:00:36 +00:00
|
|
|
// ErrNamePatternNotAllowed ...
|
2015-03-26 21:11:47 +00:00
|
|
|
type ErrNamePatternNotAllowed struct {
|
|
|
|
Pattern string
|
|
|
|
}
|
|
|
|
|
2016-11-22 11:00:36 +00:00
|
|
|
// IsErrNamePatternNotAllowed ...
|
2015-03-26 21:11:47 +00:00
|
|
|
func IsErrNamePatternNotAllowed(err error) bool {
|
|
|
|
_, ok := err.(ErrNamePatternNotAllowed)
|
|
|
|
return ok
|
|
|
|
}
|
|
|
|
|
|
|
|
func (err ErrNamePatternNotAllowed) Error() string {
|
2015-11-03 23:40:52 +00:00
|
|
|
return fmt.Sprintf("name pattern is not allowed [pattern: %s]", err.Pattern)
|
2015-03-26 21:11:47 +00:00
|
|
|
}
|
|
|
|
|
2015-03-18 01:51:39 +00:00
|
|
|
// ____ ___
|
|
|
|
// | | \______ ___________
|
|
|
|
// | | / ___// __ \_ __ \
|
|
|
|
// | | /\___ \\ ___/| | \/
|
|
|
|
// |______//____ >\___ >__|
|
|
|
|
// \/ \/
|
|
|
|
|
2016-11-22 11:00:36 +00:00
|
|
|
// ErrUserAlreadyExist ...
|
2015-03-26 21:11:47 +00:00
|
|
|
type ErrUserAlreadyExist struct {
|
|
|
|
Name string
|
|
|
|
}
|
|
|
|
|
2016-11-22 11:00:36 +00:00
|
|
|
// IsErrUserAlreadyExist ...
|
2015-03-26 21:11:47 +00:00
|
|
|
func IsErrUserAlreadyExist(err error) bool {
|
|
|
|
_, ok := err.(ErrUserAlreadyExist)
|
|
|
|
return ok
|
|
|
|
}
|
|
|
|
|
|
|
|
func (err ErrUserAlreadyExist) Error() string {
|
2015-11-03 23:40:52 +00:00
|
|
|
return fmt.Sprintf("user already exists [name: %s]", err.Name)
|
2015-03-26 21:11:47 +00:00
|
|
|
}
|
|
|
|
|
2016-11-22 11:00:36 +00:00
|
|
|
// ErrUserNotExist ...
|
2015-08-05 03:14:17 +00:00
|
|
|
type ErrUserNotExist struct {
|
2016-11-11 23:01:09 +00:00
|
|
|
UID int64
|
|
|
|
Name string
|
|
|
|
KeyID int64
|
2015-08-05 03:14:17 +00:00
|
|
|
}
|
|
|
|
|
2016-11-22 11:00:36 +00:00
|
|
|
// IsErrUserNotExist ...
|
2015-08-05 03:14:17 +00:00
|
|
|
func IsErrUserNotExist(err error) bool {
|
|
|
|
_, ok := err.(ErrUserNotExist)
|
|
|
|
return ok
|
|
|
|
}
|
|
|
|
|
|
|
|
func (err ErrUserNotExist) Error() string {
|
2016-11-11 23:01:09 +00:00
|
|
|
return fmt.Sprintf("user does not exist [uid: %d, name: %s, keyid: %d]", err.UID, err.Name, err.KeyID)
|
2015-08-05 03:14:17 +00:00
|
|
|
}
|
|
|
|
|
2016-11-22 11:00:36 +00:00
|
|
|
// ErrEmailAlreadyUsed ...
|
2015-03-26 21:11:47 +00:00
|
|
|
type ErrEmailAlreadyUsed struct {
|
|
|
|
Email string
|
|
|
|
}
|
|
|
|
|
2016-11-22 11:00:36 +00:00
|
|
|
// IsErrEmailAlreadyUsed ...
|
2015-03-26 21:11:47 +00:00
|
|
|
func IsErrEmailAlreadyUsed(err error) bool {
|
|
|
|
_, ok := err.(ErrEmailAlreadyUsed)
|
|
|
|
return ok
|
|
|
|
}
|
|
|
|
|
|
|
|
func (err ErrEmailAlreadyUsed) Error() string {
|
2015-11-03 23:40:52 +00:00
|
|
|
return fmt.Sprintf("e-mail has been used [email: %s]", err.Email)
|
2015-03-26 21:11:47 +00:00
|
|
|
}
|
|
|
|
|
2016-11-22 11:00:36 +00:00
|
|
|
// ErrUserOwnRepos ...
|
2015-03-18 01:51:39 +00:00
|
|
|
type ErrUserOwnRepos struct {
|
|
|
|
UID int64
|
|
|
|
}
|
|
|
|
|
2016-11-22 11:00:36 +00:00
|
|
|
// IsErrUserOwnRepos ...
|
2015-03-18 01:51:39 +00:00
|
|
|
func IsErrUserOwnRepos(err error) bool {
|
|
|
|
_, ok := err.(ErrUserOwnRepos)
|
|
|
|
return ok
|
|
|
|
}
|
|
|
|
|
|
|
|
func (err ErrUserOwnRepos) Error() string {
|
2015-11-03 23:40:52 +00:00
|
|
|
return fmt.Sprintf("user still has ownership of repositories [uid: %d]", err.UID)
|
2015-03-18 01:51:39 +00:00
|
|
|
}
|
|
|
|
|
2016-11-22 11:00:36 +00:00
|
|
|
// ErrUserHasOrgs ...
|
2015-03-18 01:51:39 +00:00
|
|
|
type ErrUserHasOrgs struct {
|
|
|
|
UID int64
|
|
|
|
}
|
|
|
|
|
2016-11-22 11:00:36 +00:00
|
|
|
// IsErrUserHasOrgs ...
|
2015-03-18 01:51:39 +00:00
|
|
|
func IsErrUserHasOrgs(err error) bool {
|
|
|
|
_, ok := err.(ErrUserHasOrgs)
|
|
|
|
return ok
|
|
|
|
}
|
|
|
|
|
|
|
|
func (err ErrUserHasOrgs) Error() string {
|
2015-11-03 23:40:52 +00:00
|
|
|
return fmt.Sprintf("user still has membership of organizations [uid: %d]", err.UID)
|
2015-03-18 01:51:39 +00:00
|
|
|
}
|
|
|
|
|
2016-11-22 11:00:36 +00:00
|
|
|
// ErrReachLimitOfRepo ...
|
2015-12-10 17:37:53 +00:00
|
|
|
type ErrReachLimitOfRepo struct {
|
|
|
|
Limit int
|
|
|
|
}
|
|
|
|
|
2016-11-22 11:00:36 +00:00
|
|
|
// IsErrReachLimitOfRepo ...
|
2015-12-10 17:37:53 +00:00
|
|
|
func IsErrReachLimitOfRepo(err error) bool {
|
|
|
|
_, ok := err.(ErrReachLimitOfRepo)
|
|
|
|
return ok
|
|
|
|
}
|
|
|
|
|
|
|
|
func (err ErrReachLimitOfRepo) Error() string {
|
|
|
|
return fmt.Sprintf("user has reached maximum limit of repositories [limit: %d]", err.Limit)
|
|
|
|
}
|
|
|
|
|
2015-11-27 06:50:38 +00:00
|
|
|
// __ __.__ __ .__
|
|
|
|
// / \ / \__| | _|__|
|
|
|
|
// \ \/\/ / | |/ / |
|
|
|
|
// \ /| | <| |
|
|
|
|
// \__/\ / |__|__|_ \__|
|
|
|
|
// \/ \/
|
|
|
|
|
2016-11-22 11:00:36 +00:00
|
|
|
// ErrWikiAlreadyExist ...
|
2015-11-27 06:50:38 +00:00
|
|
|
type ErrWikiAlreadyExist struct {
|
|
|
|
Title string
|
|
|
|
}
|
|
|
|
|
2016-11-22 11:00:36 +00:00
|
|
|
// IsErrWikiAlreadyExist ...
|
2015-11-27 06:50:38 +00:00
|
|
|
func IsErrWikiAlreadyExist(err error) bool {
|
|
|
|
_, ok := err.(ErrWikiAlreadyExist)
|
|
|
|
return ok
|
|
|
|
}
|
|
|
|
|
|
|
|
func (err ErrWikiAlreadyExist) Error() string {
|
|
|
|
return fmt.Sprintf("wiki page already exists [title: %s]", err.Title)
|
|
|
|
}
|
|
|
|
|
2015-08-06 14:48:11 +00:00
|
|
|
// __________ ___. .__ .__ ____ __.
|
|
|
|
// \______ \__ _\_ |__ | | |__| ____ | |/ _|____ ___.__.
|
|
|
|
// | ___/ | \ __ \| | | |/ ___\ | <_/ __ < | |
|
|
|
|
// | | | | / \_\ \ |_| \ \___ | | \ ___/\___ |
|
|
|
|
// |____| |____/|___ /____/__|\___ > |____|__ \___ > ____|
|
|
|
|
// \/ \/ \/ \/\/
|
|
|
|
|
2016-11-22 11:00:36 +00:00
|
|
|
// ErrKeyUnableVerify ...
|
2015-11-19 02:21:47 +00:00
|
|
|
type ErrKeyUnableVerify struct {
|
|
|
|
Result string
|
|
|
|
}
|
|
|
|
|
2016-11-22 11:00:36 +00:00
|
|
|
// IsErrKeyUnableVerify ...
|
2015-11-19 02:21:47 +00:00
|
|
|
func IsErrKeyUnableVerify(err error) bool {
|
|
|
|
_, ok := err.(ErrKeyUnableVerify)
|
|
|
|
return ok
|
|
|
|
}
|
|
|
|
|
|
|
|
func (err ErrKeyUnableVerify) Error() string {
|
|
|
|
return fmt.Sprintf("Unable to verify key content [result: %s]", err.Result)
|
|
|
|
}
|
|
|
|
|
2016-11-22 11:00:36 +00:00
|
|
|
// ErrKeyNotExist ...
|
2015-08-06 14:48:11 +00:00
|
|
|
type ErrKeyNotExist struct {
|
|
|
|
ID int64
|
|
|
|
}
|
|
|
|
|
2016-11-22 11:00:36 +00:00
|
|
|
// IsErrKeyNotExist ...
|
2015-08-06 14:48:11 +00:00
|
|
|
func IsErrKeyNotExist(err error) bool {
|
|
|
|
_, ok := err.(ErrKeyNotExist)
|
|
|
|
return ok
|
|
|
|
}
|
|
|
|
|
|
|
|
func (err ErrKeyNotExist) Error() string {
|
2015-11-03 23:40:52 +00:00
|
|
|
return fmt.Sprintf("public key does not exist [id: %d]", err.ID)
|
2015-08-06 14:48:11 +00:00
|
|
|
}
|
|
|
|
|
2016-11-22 11:00:36 +00:00
|
|
|
// ErrKeyAlreadyExist ...
|
2015-08-06 14:48:11 +00:00
|
|
|
type ErrKeyAlreadyExist struct {
|
|
|
|
OwnerID int64
|
|
|
|
Content string
|
|
|
|
}
|
|
|
|
|
2016-11-22 11:00:36 +00:00
|
|
|
// IsErrKeyAlreadyExist ...
|
2015-08-06 14:48:11 +00:00
|
|
|
func IsErrKeyAlreadyExist(err error) bool {
|
|
|
|
_, ok := err.(ErrKeyAlreadyExist)
|
|
|
|
return ok
|
|
|
|
}
|
|
|
|
|
|
|
|
func (err ErrKeyAlreadyExist) Error() string {
|
2015-11-03 23:40:52 +00:00
|
|
|
return fmt.Sprintf("public key already exists [owner_id: %d, content: %s]", err.OwnerID, err.Content)
|
2015-08-06 14:48:11 +00:00
|
|
|
}
|
|
|
|
|
2016-11-22 11:00:36 +00:00
|
|
|
// ErrKeyNameAlreadyUsed ...
|
2015-08-06 14:48:11 +00:00
|
|
|
type ErrKeyNameAlreadyUsed struct {
|
|
|
|
OwnerID int64
|
|
|
|
Name string
|
|
|
|
}
|
|
|
|
|
2016-11-22 11:00:36 +00:00
|
|
|
// IsErrKeyNameAlreadyUsed ...
|
2015-08-06 14:48:11 +00:00
|
|
|
func IsErrKeyNameAlreadyUsed(err error) bool {
|
|
|
|
_, ok := err.(ErrKeyNameAlreadyUsed)
|
|
|
|
return ok
|
|
|
|
}
|
|
|
|
|
|
|
|
func (err ErrKeyNameAlreadyUsed) Error() string {
|
2015-11-03 23:40:52 +00:00
|
|
|
return fmt.Sprintf("public key already exists [owner_id: %d, name: %s]", err.OwnerID, err.Name)
|
2015-08-06 14:48:11 +00:00
|
|
|
}
|
|
|
|
|
2016-11-22 11:00:36 +00:00
|
|
|
// ErrKeyAccessDenied ...
|
2015-12-03 05:24:37 +00:00
|
|
|
type ErrKeyAccessDenied struct {
|
|
|
|
UserID int64
|
|
|
|
KeyID int64
|
|
|
|
Note string
|
|
|
|
}
|
|
|
|
|
2016-11-22 11:00:36 +00:00
|
|
|
// IsErrKeyAccessDenied ...
|
2015-12-03 05:24:37 +00:00
|
|
|
func IsErrKeyAccessDenied(err error) bool {
|
|
|
|
_, ok := err.(ErrKeyAccessDenied)
|
|
|
|
return ok
|
|
|
|
}
|
|
|
|
|
|
|
|
func (err ErrKeyAccessDenied) Error() string {
|
|
|
|
return fmt.Sprintf("user does not have access to the key [user_id: %d, key_id: %d, note: %s]",
|
|
|
|
err.UserID, err.KeyID, err.Note)
|
|
|
|
}
|
|
|
|
|
2016-11-22 11:00:36 +00:00
|
|
|
// ErrDeployKeyNotExist ...
|
2015-11-19 02:21:47 +00:00
|
|
|
type ErrDeployKeyNotExist struct {
|
|
|
|
ID int64
|
|
|
|
KeyID int64
|
|
|
|
RepoID int64
|
|
|
|
}
|
|
|
|
|
2016-11-22 11:00:36 +00:00
|
|
|
// IsErrDeployKeyNotExist ...
|
2015-11-19 02:21:47 +00:00
|
|
|
func IsErrDeployKeyNotExist(err error) bool {
|
|
|
|
_, ok := err.(ErrDeployKeyNotExist)
|
|
|
|
return ok
|
|
|
|
}
|
|
|
|
|
|
|
|
func (err ErrDeployKeyNotExist) Error() string {
|
|
|
|
return fmt.Sprintf("Deploy key does not exist [id: %d, key_id: %d, repo_id: %d]", err.ID, err.KeyID, err.RepoID)
|
|
|
|
}
|
|
|
|
|
2016-11-22 11:00:36 +00:00
|
|
|
// ErrDeployKeyAlreadyExist ...
|
2015-08-06 14:48:11 +00:00
|
|
|
type ErrDeployKeyAlreadyExist struct {
|
|
|
|
KeyID int64
|
|
|
|
RepoID int64
|
|
|
|
}
|
|
|
|
|
2016-11-22 11:00:36 +00:00
|
|
|
// IsErrDeployKeyAlreadyExist ...
|
2015-08-06 14:48:11 +00:00
|
|
|
func IsErrDeployKeyAlreadyExist(err error) bool {
|
|
|
|
_, ok := err.(ErrDeployKeyAlreadyExist)
|
|
|
|
return ok
|
|
|
|
}
|
|
|
|
|
|
|
|
func (err ErrDeployKeyAlreadyExist) Error() string {
|
2015-11-03 23:40:52 +00:00
|
|
|
return fmt.Sprintf("public key already exists [key_id: %d, repo_id: %d]", err.KeyID, err.RepoID)
|
2015-08-06 14:48:11 +00:00
|
|
|
}
|
|
|
|
|
2016-11-22 11:00:36 +00:00
|
|
|
// ErrDeployKeyNameAlreadyUsed ...
|
2015-08-06 14:48:11 +00:00
|
|
|
type ErrDeployKeyNameAlreadyUsed struct {
|
|
|
|
RepoID int64
|
|
|
|
Name string
|
|
|
|
}
|
|
|
|
|
2016-11-22 11:00:36 +00:00
|
|
|
// IsErrDeployKeyNameAlreadyUsed ...
|
2015-08-06 14:48:11 +00:00
|
|
|
func IsErrDeployKeyNameAlreadyUsed(err error) bool {
|
|
|
|
_, ok := err.(ErrDeployKeyNameAlreadyUsed)
|
|
|
|
return ok
|
|
|
|
}
|
|
|
|
|
|
|
|
func (err ErrDeployKeyNameAlreadyUsed) Error() string {
|
2015-11-03 23:40:52 +00:00
|
|
|
return fmt.Sprintf("public key already exists [repo_id: %d, name: %s]", err.RepoID, err.Name)
|
2015-08-06 14:48:11 +00:00
|
|
|
}
|
|
|
|
|
2015-09-02 06:40:15 +00:00
|
|
|
// _____ ___________ __
|
|
|
|
// / _ \ ____ ____ ____ ______ _____\__ ___/___ | | __ ____ ____
|
|
|
|
// / /_\ \_/ ___\/ ___\/ __ \ / ___// ___/ | | / _ \| |/ // __ \ / \
|
|
|
|
// / | \ \__\ \__\ ___/ \___ \ \___ \ | |( <_> ) <\ ___/| | \
|
|
|
|
// \____|__ /\___ >___ >___ >____ >____ > |____| \____/|__|_ \\___ >___| /
|
|
|
|
// \/ \/ \/ \/ \/ \/ \/ \/ \/
|
|
|
|
|
2016-11-22 11:00:36 +00:00
|
|
|
// ErrAccessTokenNotExist ...
|
2015-09-02 06:40:15 +00:00
|
|
|
type ErrAccessTokenNotExist struct {
|
|
|
|
SHA string
|
|
|
|
}
|
|
|
|
|
2016-11-22 11:00:36 +00:00
|
|
|
// IsErrAccessTokenNotExist ...
|
2015-09-02 06:40:15 +00:00
|
|
|
func IsErrAccessTokenNotExist(err error) bool {
|
|
|
|
_, ok := err.(ErrAccessTokenNotExist)
|
|
|
|
return ok
|
|
|
|
}
|
|
|
|
|
|
|
|
func (err ErrAccessTokenNotExist) Error() string {
|
2015-11-03 23:40:52 +00:00
|
|
|
return fmt.Sprintf("access token does not exist [sha: %s]", err.SHA)
|
2015-09-02 06:40:15 +00:00
|
|
|
}
|
|
|
|
|
2016-11-22 11:00:36 +00:00
|
|
|
// ErrAccessTokenEmpty ...
|
2016-06-27 09:02:39 +00:00
|
|
|
type ErrAccessTokenEmpty struct {
|
|
|
|
}
|
|
|
|
|
2016-11-22 11:00:36 +00:00
|
|
|
// IsErrAccessTokenEmpty ...
|
2016-06-27 09:02:39 +00:00
|
|
|
func IsErrAccessTokenEmpty(err error) bool {
|
|
|
|
_, ok := err.(ErrAccessTokenEmpty)
|
|
|
|
return ok
|
|
|
|
}
|
|
|
|
|
|
|
|
func (err ErrAccessTokenEmpty) Error() string {
|
|
|
|
return fmt.Sprintf("access token is empty")
|
|
|
|
}
|
|
|
|
|
2015-03-18 01:51:39 +00:00
|
|
|
// ________ .__ __ .__
|
|
|
|
// \_____ \_______ _________ ____ |__|____________ _/ |_|__| ____ ____
|
|
|
|
// / | \_ __ \/ ___\__ \ / \| \___ /\__ \\ __\ |/ _ \ / \
|
|
|
|
// / | \ | \/ /_/ > __ \| | \ |/ / / __ \| | | ( <_> ) | \
|
|
|
|
// \_______ /__| \___ (____ /___| /__/_____ \(____ /__| |__|\____/|___| /
|
|
|
|
// \/ /_____/ \/ \/ \/ \/ \/
|
|
|
|
|
2016-11-22 11:00:36 +00:00
|
|
|
// ErrLastOrgOwner ...
|
2015-03-18 01:51:39 +00:00
|
|
|
type ErrLastOrgOwner struct {
|
|
|
|
UID int64
|
|
|
|
}
|
|
|
|
|
2016-11-22 11:00:36 +00:00
|
|
|
// IsErrLastOrgOwner ...
|
2015-03-18 01:51:39 +00:00
|
|
|
func IsErrLastOrgOwner(err error) bool {
|
|
|
|
_, ok := err.(ErrLastOrgOwner)
|
|
|
|
return ok
|
|
|
|
}
|
|
|
|
|
|
|
|
func (err ErrLastOrgOwner) Error() string {
|
2015-11-03 23:40:52 +00:00
|
|
|
return fmt.Sprintf("user is the last member of owner team [uid: %d]", err.UID)
|
2015-03-18 01:51:39 +00:00
|
|
|
}
|
|
|
|
|
2015-03-16 08:04:27 +00:00
|
|
|
// __________ .__ __
|
|
|
|
// \______ \ ____ ______ ____ _____|__|/ |_ ___________ ___.__.
|
|
|
|
// | _// __ \\____ \ / _ \/ ___/ \ __\/ _ \_ __ < | |
|
|
|
|
// | | \ ___/| |_> > <_> )___ \| || | ( <_> ) | \/\___ |
|
|
|
|
// |____|_ /\___ > __/ \____/____ >__||__| \____/|__| / ____|
|
|
|
|
// \/ \/|__| \/ \/
|
|
|
|
|
2016-11-22 11:00:36 +00:00
|
|
|
// ErrRepoNotExist ...
|
2015-03-16 08:04:27 +00:00
|
|
|
type ErrRepoNotExist struct {
|
|
|
|
ID int64
|
|
|
|
UID int64
|
|
|
|
Name string
|
|
|
|
}
|
|
|
|
|
2016-11-22 11:00:36 +00:00
|
|
|
// IsErrRepoNotExist ...
|
2015-03-16 08:04:27 +00:00
|
|
|
func IsErrRepoNotExist(err error) bool {
|
|
|
|
_, ok := err.(ErrRepoNotExist)
|
|
|
|
return ok
|
|
|
|
}
|
|
|
|
|
|
|
|
func (err ErrRepoNotExist) Error() string {
|
|
|
|
return fmt.Sprintf("repository does not exist [id: %d, uid: %d, name: %s]", err.ID, err.UID, err.Name)
|
|
|
|
}
|
2015-08-05 10:26:18 +00:00
|
|
|
|
2016-11-22 11:00:36 +00:00
|
|
|
// ErrRepoAlreadyExist ...
|
2015-08-08 09:10:34 +00:00
|
|
|
type ErrRepoAlreadyExist struct {
|
|
|
|
Uname string
|
|
|
|
Name string
|
|
|
|
}
|
|
|
|
|
2016-11-22 11:00:36 +00:00
|
|
|
// IsErrRepoAlreadyExist ...
|
2015-08-08 09:10:34 +00:00
|
|
|
func IsErrRepoAlreadyExist(err error) bool {
|
|
|
|
_, ok := err.(ErrRepoAlreadyExist)
|
|
|
|
return ok
|
|
|
|
}
|
|
|
|
|
|
|
|
func (err ErrRepoAlreadyExist) Error() string {
|
2015-08-27 15:06:14 +00:00
|
|
|
return fmt.Sprintf("repository already exists [uname: %s, name: %s]", err.Uname, err.Name)
|
|
|
|
}
|
|
|
|
|
2016-11-22 11:00:36 +00:00
|
|
|
// ErrInvalidCloneAddr ...
|
2015-11-03 23:40:52 +00:00
|
|
|
type ErrInvalidCloneAddr struct {
|
|
|
|
IsURLError bool
|
|
|
|
IsInvalidPath bool
|
|
|
|
IsPermissionDenied bool
|
|
|
|
}
|
|
|
|
|
2016-11-22 11:00:36 +00:00
|
|
|
// IsErrInvalidCloneAddr ...
|
2015-11-03 23:40:52 +00:00
|
|
|
func IsErrInvalidCloneAddr(err error) bool {
|
|
|
|
_, ok := err.(ErrInvalidCloneAddr)
|
|
|
|
return ok
|
|
|
|
}
|
|
|
|
|
|
|
|
func (err ErrInvalidCloneAddr) Error() string {
|
|
|
|
return fmt.Sprintf("invalid clone address [is_url_error: %v, is_invalid_path: %v, is_permission_denied: %v]",
|
|
|
|
err.IsURLError, err.IsInvalidPath, err.IsPermissionDenied)
|
|
|
|
}
|
|
|
|
|
2016-11-22 11:00:36 +00:00
|
|
|
// ErrUpdateTaskNotExist ...
|
2015-11-05 02:57:10 +00:00
|
|
|
type ErrUpdateTaskNotExist struct {
|
|
|
|
UUID string
|
|
|
|
}
|
|
|
|
|
2016-11-22 11:00:36 +00:00
|
|
|
// IsErrUpdateTaskNotExist ...
|
2015-11-05 02:57:10 +00:00
|
|
|
func IsErrUpdateTaskNotExist(err error) bool {
|
|
|
|
_, ok := err.(ErrUpdateTaskNotExist)
|
|
|
|
return ok
|
|
|
|
}
|
|
|
|
|
|
|
|
func (err ErrUpdateTaskNotExist) Error() string {
|
|
|
|
return fmt.Sprintf("update task does not exist [uuid: %s]", err.UUID)
|
|
|
|
}
|
|
|
|
|
2016-11-22 11:00:36 +00:00
|
|
|
// ErrReleaseAlreadyExist ...
|
2015-11-16 04:52:46 +00:00
|
|
|
type ErrReleaseAlreadyExist struct {
|
|
|
|
TagName string
|
|
|
|
}
|
|
|
|
|
2016-11-22 11:00:36 +00:00
|
|
|
// IsErrReleaseAlreadyExist ...
|
2015-11-16 04:52:46 +00:00
|
|
|
func IsErrReleaseAlreadyExist(err error) bool {
|
|
|
|
_, ok := err.(ErrReleaseAlreadyExist)
|
|
|
|
return ok
|
|
|
|
}
|
|
|
|
|
|
|
|
func (err ErrReleaseAlreadyExist) Error() string {
|
2016-07-23 07:59:19 +00:00
|
|
|
return fmt.Sprintf("release tag already exist [tag_name: %s]", err.TagName)
|
2015-11-16 04:52:46 +00:00
|
|
|
}
|
|
|
|
|
2016-11-22 11:00:36 +00:00
|
|
|
// ErrReleaseNotExist ...
|
2015-11-16 04:52:46 +00:00
|
|
|
type ErrReleaseNotExist struct {
|
2015-11-20 07:38:41 +00:00
|
|
|
ID int64
|
2015-11-16 04:52:46 +00:00
|
|
|
TagName string
|
|
|
|
}
|
|
|
|
|
2016-11-22 11:00:36 +00:00
|
|
|
// IsErrReleaseNotExist ...
|
2015-11-16 04:52:46 +00:00
|
|
|
func IsErrReleaseNotExist(err error) bool {
|
|
|
|
_, ok := err.(ErrReleaseNotExist)
|
|
|
|
return ok
|
|
|
|
}
|
|
|
|
|
|
|
|
func (err ErrReleaseNotExist) Error() string {
|
2016-07-23 07:59:19 +00:00
|
|
|
return fmt.Sprintf("release tag does not exist [id: %d, tag_name: %s]", err.ID, err.TagName)
|
|
|
|
}
|
|
|
|
|
2016-11-22 11:00:36 +00:00
|
|
|
// ErrInvalidTagName ...
|
2016-07-23 07:59:19 +00:00
|
|
|
type ErrInvalidTagName struct {
|
|
|
|
TagName string
|
|
|
|
}
|
|
|
|
|
2016-11-22 11:00:36 +00:00
|
|
|
// IsErrInvalidTagName ...
|
2016-07-23 07:59:19 +00:00
|
|
|
func IsErrInvalidTagName(err error) bool {
|
|
|
|
_, ok := err.(ErrInvalidTagName)
|
|
|
|
return ok
|
|
|
|
}
|
|
|
|
|
|
|
|
func (err ErrInvalidTagName) Error() string {
|
|
|
|
return fmt.Sprintf("release tag name is not valid [tag_name: %s]", err.TagName)
|
2015-11-16 04:52:46 +00:00
|
|
|
}
|
|
|
|
|
2016-11-22 11:00:36 +00:00
|
|
|
// ErrRepoFileAlreadyExist ...
|
2016-08-11 12:48:08 +00:00
|
|
|
type ErrRepoFileAlreadyExist struct {
|
|
|
|
FileName string
|
|
|
|
}
|
|
|
|
|
2016-11-22 11:00:36 +00:00
|
|
|
// IsErrRepoFileAlreadyExist ...
|
2016-08-11 12:48:08 +00:00
|
|
|
func IsErrRepoFileAlreadyExist(err error) bool {
|
|
|
|
_, ok := err.(ErrRepoFileAlreadyExist)
|
|
|
|
return ok
|
|
|
|
}
|
|
|
|
|
|
|
|
func (err ErrRepoFileAlreadyExist) Error() string {
|
2016-08-12 09:29:29 +00:00
|
|
|
return fmt.Sprintf("repository file already exists [file_name: %s]", err.FileName)
|
2016-08-11 12:48:08 +00:00
|
|
|
}
|
|
|
|
|
2016-02-02 22:07:40 +00:00
|
|
|
// __________ .__
|
|
|
|
// \______ \____________ ____ ____ | |__
|
|
|
|
// | | _/\_ __ \__ \ / \_/ ___\| | \
|
|
|
|
// | | \ | | \// __ \| | \ \___| Y \
|
|
|
|
// |______ / |__| (____ /___| /\___ >___| /
|
|
|
|
// \/ \/ \/ \/ \/
|
|
|
|
|
2016-11-22 11:00:36 +00:00
|
|
|
// ErrBranchNotExist ...
|
2016-02-02 22:07:40 +00:00
|
|
|
type ErrBranchNotExist struct {
|
|
|
|
Name string
|
|
|
|
}
|
|
|
|
|
2016-11-22 11:00:36 +00:00
|
|
|
// IsErrBranchNotExist ...
|
2016-02-02 22:07:40 +00:00
|
|
|
func IsErrBranchNotExist(err error) bool {
|
|
|
|
_, ok := err.(ErrBranchNotExist)
|
|
|
|
return ok
|
|
|
|
}
|
|
|
|
|
|
|
|
func (err ErrBranchNotExist) Error() string {
|
2016-07-23 07:59:19 +00:00
|
|
|
return fmt.Sprintf("branch does not exist [name: %s]", err.Name)
|
2016-02-02 22:07:40 +00:00
|
|
|
}
|
|
|
|
|
2015-08-27 15:06:14 +00:00
|
|
|
// __ __ ___. .__ __
|
|
|
|
// / \ / \ ____\_ |__ | |__ ____ ____ | | __
|
|
|
|
// \ \/\/ // __ \| __ \| | \ / _ \ / _ \| |/ /
|
|
|
|
// \ /\ ___/| \_\ \ Y ( <_> | <_> ) <
|
|
|
|
// \__/\ / \___ >___ /___| /\____/ \____/|__|_ \
|
|
|
|
// \/ \/ \/ \/ \/
|
|
|
|
|
2016-11-22 11:00:36 +00:00
|
|
|
// ErrWebhookNotExist ...
|
2015-08-27 15:06:14 +00:00
|
|
|
type ErrWebhookNotExist struct {
|
|
|
|
ID int64
|
|
|
|
}
|
|
|
|
|
2016-11-22 11:00:36 +00:00
|
|
|
// IsErrWebhookNotExist ...
|
2015-08-27 15:06:14 +00:00
|
|
|
func IsErrWebhookNotExist(err error) bool {
|
|
|
|
_, ok := err.(ErrWebhookNotExist)
|
|
|
|
return ok
|
|
|
|
}
|
|
|
|
|
|
|
|
func (err ErrWebhookNotExist) Error() string {
|
|
|
|
return fmt.Sprintf("webhook does not exist [id: %d]", err.ID)
|
2015-08-08 09:10:34 +00:00
|
|
|
}
|
|
|
|
|
2015-08-12 09:04:23 +00:00
|
|
|
// .___
|
|
|
|
// | | ______ ________ __ ____
|
|
|
|
// | |/ ___// ___/ | \_/ __ \
|
|
|
|
// | |\___ \ \___ \| | /\ ___/
|
|
|
|
// |___/____ >____ >____/ \___ >
|
|
|
|
// \/ \/ \/
|
|
|
|
|
2016-11-22 11:00:36 +00:00
|
|
|
// ErrIssueNotExist ...
|
2015-08-12 09:04:23 +00:00
|
|
|
type ErrIssueNotExist struct {
|
|
|
|
ID int64
|
|
|
|
RepoID int64
|
|
|
|
Index int64
|
|
|
|
}
|
|
|
|
|
2016-11-22 11:00:36 +00:00
|
|
|
// IsErrIssueNotExist ...
|
2015-08-12 09:04:23 +00:00
|
|
|
func IsErrIssueNotExist(err error) bool {
|
|
|
|
_, ok := err.(ErrIssueNotExist)
|
|
|
|
return ok
|
|
|
|
}
|
|
|
|
|
|
|
|
func (err ErrIssueNotExist) Error() string {
|
2015-08-19 20:31:28 +00:00
|
|
|
return fmt.Sprintf("issue does not exist [id: %d, repo_id: %d, index: %d]", err.ID, err.RepoID, err.Index)
|
|
|
|
}
|
|
|
|
|
2015-09-01 23:07:02 +00:00
|
|
|
// __________ .__ .__ __________ __
|
|
|
|
// \______ \__ __| | | |\______ \ ____ ________ __ ____ _______/ |_
|
|
|
|
// | ___/ | \ | | | | _// __ \/ ____/ | \_/ __ \ / ___/\ __\
|
|
|
|
// | | | | / |_| |_| | \ ___< <_| | | /\ ___/ \___ \ | |
|
|
|
|
// |____| |____/|____/____/____|_ /\___ >__ |____/ \___ >____ > |__|
|
|
|
|
// \/ \/ |__| \/ \/
|
|
|
|
|
2016-11-22 11:00:36 +00:00
|
|
|
// ErrPullRequestNotExist ...
|
2015-09-02 09:09:12 +00:00
|
|
|
type ErrPullRequestNotExist struct {
|
|
|
|
ID int64
|
2015-10-22 18:47:24 +00:00
|
|
|
IssueID int64
|
2015-09-02 09:09:12 +00:00
|
|
|
HeadRepoID int64
|
|
|
|
BaseRepoID int64
|
|
|
|
HeadBarcnh string
|
|
|
|
BaseBranch string
|
2015-09-01 23:07:02 +00:00
|
|
|
}
|
|
|
|
|
2016-11-22 11:00:36 +00:00
|
|
|
// IsErrPullRequestNotExist ...
|
2015-09-02 09:09:12 +00:00
|
|
|
func IsErrPullRequestNotExist(err error) bool {
|
|
|
|
_, ok := err.(ErrPullRequestNotExist)
|
2015-09-01 23:07:02 +00:00
|
|
|
return ok
|
|
|
|
}
|
|
|
|
|
2015-09-02 09:09:12 +00:00
|
|
|
func (err ErrPullRequestNotExist) Error() string {
|
2015-10-22 18:47:24 +00:00
|
|
|
return fmt.Sprintf("pull request does not exist [id: %d, issue_id: %d, head_repo_id: %d, base_repo_id: %d, head_branch: %s, base_branch: %s]",
|
|
|
|
err.ID, err.IssueID, err.HeadRepoID, err.BaseRepoID, err.HeadBarcnh, err.BaseBranch)
|
2015-09-01 23:07:02 +00:00
|
|
|
}
|
|
|
|
|
2015-08-19 20:31:28 +00:00
|
|
|
// _________ __
|
|
|
|
// \_ ___ \ ____ _____ _____ ____ _____/ |_
|
|
|
|
// / \ \/ / _ \ / \ / \_/ __ \ / \ __\
|
|
|
|
// \ \___( <_> ) Y Y \ Y Y \ ___/| | \ |
|
|
|
|
// \______ /\____/|__|_| /__|_| /\___ >___| /__|
|
|
|
|
// \/ \/ \/ \/ \/
|
|
|
|
|
2016-11-22 11:00:36 +00:00
|
|
|
// ErrCommentNotExist ...
|
2015-08-19 20:31:28 +00:00
|
|
|
type ErrCommentNotExist struct {
|
2016-08-26 20:40:53 +00:00
|
|
|
ID int64
|
|
|
|
IssueID int64
|
2015-08-19 20:31:28 +00:00
|
|
|
}
|
|
|
|
|
2016-11-22 11:00:36 +00:00
|
|
|
// IsErrCommentNotExist ...
|
2015-08-19 20:31:28 +00:00
|
|
|
func IsErrCommentNotExist(err error) bool {
|
|
|
|
_, ok := err.(ErrCommentNotExist)
|
|
|
|
return ok
|
|
|
|
}
|
|
|
|
|
|
|
|
func (err ErrCommentNotExist) Error() string {
|
2016-08-26 20:40:53 +00:00
|
|
|
return fmt.Sprintf("comment does not exist [id: %d, issue_id: %d]", err.ID, err.IssueID)
|
2015-08-12 09:04:23 +00:00
|
|
|
}
|
|
|
|
|
2015-08-10 06:42:50 +00:00
|
|
|
// .____ ___. .__
|
|
|
|
// | | _____ \_ |__ ____ | |
|
|
|
|
// | | \__ \ | __ \_/ __ \| |
|
|
|
|
// | |___ / __ \| \_\ \ ___/| |__
|
|
|
|
// |_______ (____ /___ /\___ >____/
|
|
|
|
// \/ \/ \/ \/
|
|
|
|
|
2016-11-22 11:00:36 +00:00
|
|
|
// ErrLabelNotExist ...
|
2015-08-10 06:42:50 +00:00
|
|
|
type ErrLabelNotExist struct {
|
2016-08-03 18:51:22 +00:00
|
|
|
LabelID int64
|
|
|
|
RepoID int64
|
2015-08-10 06:42:50 +00:00
|
|
|
}
|
|
|
|
|
2016-11-22 11:00:36 +00:00
|
|
|
// IsErrLabelNotExist ...
|
2015-08-10 06:42:50 +00:00
|
|
|
func IsErrLabelNotExist(err error) bool {
|
|
|
|
_, ok := err.(ErrLabelNotExist)
|
|
|
|
return ok
|
|
|
|
}
|
|
|
|
|
|
|
|
func (err ErrLabelNotExist) Error() string {
|
2016-08-03 18:51:22 +00:00
|
|
|
return fmt.Sprintf("label does not exist [label_id: %d, repo_id: %d]", err.LabelID, err.RepoID)
|
2016-08-03 16:24:16 +00:00
|
|
|
}
|
|
|
|
|
2015-08-05 10:26:18 +00:00
|
|
|
// _____ .__.__ __
|
|
|
|
// / \ |__| | ____ _______/ |_ ____ ____ ____
|
|
|
|
// / \ / \| | | _/ __ \ / ___/\ __\/ _ \ / \_/ __ \
|
|
|
|
// / Y \ | |_\ ___/ \___ \ | | ( <_> ) | \ ___/
|
|
|
|
// \____|__ /__|____/\___ >____ > |__| \____/|___| /\___ >
|
|
|
|
// \/ \/ \/ \/ \/
|
|
|
|
|
2016-11-22 11:00:36 +00:00
|
|
|
// ErrMilestoneNotExist ...
|
2015-08-05 10:26:18 +00:00
|
|
|
type ErrMilestoneNotExist struct {
|
2015-08-10 10:57:57 +00:00
|
|
|
ID int64
|
|
|
|
RepoID int64
|
2015-08-05 10:26:18 +00:00
|
|
|
}
|
|
|
|
|
2016-11-22 11:00:36 +00:00
|
|
|
// IsErrMilestoneNotExist ...
|
2015-08-05 10:26:18 +00:00
|
|
|
func IsErrMilestoneNotExist(err error) bool {
|
|
|
|
_, ok := err.(ErrMilestoneNotExist)
|
|
|
|
return ok
|
|
|
|
}
|
|
|
|
|
|
|
|
func (err ErrMilestoneNotExist) Error() string {
|
2015-08-10 10:57:57 +00:00
|
|
|
return fmt.Sprintf("milestone does not exist [id: %d, repo_id: %d]", err.ID, err.RepoID)
|
2015-08-05 10:26:18 +00:00
|
|
|
}
|
2015-08-11 15:24:40 +00:00
|
|
|
|
|
|
|
// _____ __ __ .__ __
|
|
|
|
// / _ \_/ |__/ |______ ____ | |__ _____ ____ _____/ |_
|
|
|
|
// / /_\ \ __\ __\__ \ _/ ___\| | \ / \_/ __ \ / \ __\
|
|
|
|
// / | \ | | | / __ \\ \___| Y \ Y Y \ ___/| | \ |
|
|
|
|
// \____|__ /__| |__| (____ /\___ >___| /__|_| /\___ >___| /__|
|
|
|
|
// \/ \/ \/ \/ \/ \/ \/
|
|
|
|
|
2016-11-22 11:00:36 +00:00
|
|
|
// ErrAttachmentNotExist ...
|
2015-08-11 15:24:40 +00:00
|
|
|
type ErrAttachmentNotExist struct {
|
|
|
|
ID int64
|
|
|
|
UUID string
|
|
|
|
}
|
|
|
|
|
2016-11-22 11:00:36 +00:00
|
|
|
// IsErrAttachmentNotExist ...
|
2015-08-11 15:24:40 +00:00
|
|
|
func IsErrAttachmentNotExist(err error) bool {
|
|
|
|
_, ok := err.(ErrAttachmentNotExist)
|
|
|
|
return ok
|
|
|
|
}
|
|
|
|
|
|
|
|
func (err ErrAttachmentNotExist) Error() string {
|
|
|
|
return fmt.Sprintf("attachment does not exist [id: %d, uuid: %s]", err.ID, err.UUID)
|
|
|
|
}
|
2015-12-05 22:13:13 +00:00
|
|
|
|
2016-08-31 07:56:10 +00:00
|
|
|
// .____ .__ _________
|
|
|
|
// | | ____ ____ |__| ____ / _____/ ____ __ _________ ____ ____
|
|
|
|
// | | / _ \ / ___\| |/ \ \_____ \ / _ \| | \_ __ \_/ ___\/ __ \
|
|
|
|
// | |__( <_> ) /_/ > | | \ / ( <_> ) | /| | \/\ \__\ ___/
|
|
|
|
// |_______ \____/\___ /|__|___| / /_______ /\____/|____/ |__| \___ >___ >
|
|
|
|
// \/ /_____/ \/ \/ \/ \/
|
|
|
|
|
2016-11-22 11:00:36 +00:00
|
|
|
// ErrLoginSourceNotExist ...
|
2016-08-31 07:56:10 +00:00
|
|
|
type ErrLoginSourceNotExist struct {
|
2015-12-05 22:13:13 +00:00
|
|
|
ID int64
|
|
|
|
}
|
|
|
|
|
2016-11-22 11:00:36 +00:00
|
|
|
// IsErrLoginSourceNotExist ...
|
2016-08-31 07:56:10 +00:00
|
|
|
func IsErrLoginSourceNotExist(err error) bool {
|
|
|
|
_, ok := err.(ErrLoginSourceNotExist)
|
2015-12-05 22:13:13 +00:00
|
|
|
return ok
|
|
|
|
}
|
|
|
|
|
2016-08-31 07:56:10 +00:00
|
|
|
func (err ErrLoginSourceNotExist) Error() string {
|
|
|
|
return fmt.Sprintf("login source does not exist [id: %d]", err.ID)
|
|
|
|
}
|
|
|
|
|
2016-11-22 11:00:36 +00:00
|
|
|
// ErrLoginSourceAlreadyExist ...
|
2016-08-31 07:56:10 +00:00
|
|
|
type ErrLoginSourceAlreadyExist struct {
|
|
|
|
Name string
|
|
|
|
}
|
|
|
|
|
2016-11-22 11:00:36 +00:00
|
|
|
// IsErrLoginSourceAlreadyExist ...
|
2016-08-31 07:56:10 +00:00
|
|
|
func IsErrLoginSourceAlreadyExist(err error) bool {
|
|
|
|
_, ok := err.(ErrLoginSourceAlreadyExist)
|
|
|
|
return ok
|
|
|
|
}
|
|
|
|
|
|
|
|
func (err ErrLoginSourceAlreadyExist) Error() string {
|
|
|
|
return fmt.Sprintf("login source already exists [name: %s]", err.Name)
|
2016-01-29 22:06:14 +00:00
|
|
|
}
|
|
|
|
|
2016-11-22 11:00:36 +00:00
|
|
|
// ErrLoginSourceInUse ...
|
2016-08-31 08:22:41 +00:00
|
|
|
type ErrLoginSourceInUse struct {
|
|
|
|
ID int64
|
|
|
|
}
|
|
|
|
|
2016-11-22 11:00:36 +00:00
|
|
|
// IsErrLoginSourceInUse ...
|
2016-08-31 08:22:41 +00:00
|
|
|
func IsErrLoginSourceInUse(err error) bool {
|
|
|
|
_, ok := err.(ErrLoginSourceInUse)
|
|
|
|
return ok
|
|
|
|
}
|
|
|
|
|
|
|
|
func (err ErrLoginSourceInUse) Error() string {
|
|
|
|
return fmt.Sprintf("login source is still used by some users [id: %d]", err.ID)
|
|
|
|
}
|
|
|
|
|
2016-01-29 22:06:14 +00:00
|
|
|
// ___________
|
|
|
|
// \__ ___/___ _____ _____
|
|
|
|
// | |_/ __ \\__ \ / \
|
|
|
|
// | |\ ___/ / __ \| Y Y \
|
|
|
|
// |____| \___ >____ /__|_| /
|
|
|
|
// \/ \/ \/
|
|
|
|
|
2016-11-22 11:00:36 +00:00
|
|
|
// ErrTeamAlreadyExist ...
|
2016-01-29 22:06:14 +00:00
|
|
|
type ErrTeamAlreadyExist struct {
|
|
|
|
OrgID int64
|
|
|
|
Name string
|
|
|
|
}
|
|
|
|
|
2016-11-22 11:00:36 +00:00
|
|
|
// IsErrTeamAlreadyExist ...
|
2016-01-29 22:06:14 +00:00
|
|
|
func IsErrTeamAlreadyExist(err error) bool {
|
|
|
|
_, ok := err.(ErrTeamAlreadyExist)
|
|
|
|
return ok
|
|
|
|
}
|
|
|
|
|
|
|
|
func (err ErrTeamAlreadyExist) Error() string {
|
|
|
|
return fmt.Sprintf("team already exists [org_id: %d, name: %s]", err.OrgID, err.Name)
|
2015-12-05 22:13:13 +00:00
|
|
|
}
|
2016-08-11 12:48:08 +00:00
|
|
|
|
|
|
|
// ____ ___ .__ .___
|
|
|
|
// | | \______ | | _________ __| _/
|
|
|
|
// | | /\____ \| | / _ \__ \ / __ |
|
|
|
|
// | | / | |_> > |_( <_> ) __ \_/ /_/ |
|
|
|
|
// |______/ | __/|____/\____(____ /\____ |
|
|
|
|
// |__| \/ \/
|
|
|
|
//
|
|
|
|
|
2016-11-22 11:00:36 +00:00
|
|
|
// ErrUploadNotExist ...
|
2016-08-11 12:48:08 +00:00
|
|
|
type ErrUploadNotExist struct {
|
2016-08-30 12:07:50 +00:00
|
|
|
ID int64
|
|
|
|
UUID string
|
2016-08-11 12:48:08 +00:00
|
|
|
}
|
|
|
|
|
2016-11-22 11:00:36 +00:00
|
|
|
// IsErrUploadNotExist ...
|
2016-08-11 12:48:08 +00:00
|
|
|
func IsErrUploadNotExist(err error) bool {
|
|
|
|
_, ok := err.(ErrAttachmentNotExist)
|
|
|
|
return ok
|
|
|
|
}
|
|
|
|
|
|
|
|
func (err ErrUploadNotExist) Error() string {
|
2016-08-30 12:07:50 +00:00
|
|
|
return fmt.Sprintf("attachment does not exist [id: %d, uuid: %s]", err.ID, err.UUID)
|
2016-08-11 12:48:08 +00:00
|
|
|
}
|