You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

error.go 14 kB

10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514
  1. // Copyright 2015 The Gogs Authors. All rights reserved.
  2. // Use of this source code is governed by a MIT-style
  3. // license that can be found in the LICENSE file.
  4. package models
  5. import (
  6. "fmt"
  7. )
  8. type ErrNameReserved struct {
  9. Name string
  10. }
  11. func IsErrNameReserved(err error) bool {
  12. _, ok := err.(ErrNameReserved)
  13. return ok
  14. }
  15. func (err ErrNameReserved) Error() string {
  16. return fmt.Sprintf("name is reserved [name: %s]", err.Name)
  17. }
  18. type ErrNamePatternNotAllowed struct {
  19. Pattern string
  20. }
  21. func IsErrNamePatternNotAllowed(err error) bool {
  22. _, ok := err.(ErrNamePatternNotAllowed)
  23. return ok
  24. }
  25. func (err ErrNamePatternNotAllowed) Error() string {
  26. return fmt.Sprintf("name pattern is not allowed [pattern: %s]", err.Pattern)
  27. }
  28. // ____ ___
  29. // | | \______ ___________
  30. // | | / ___// __ \_ __ \
  31. // | | /\___ \\ ___/| | \/
  32. // |______//____ >\___ >__|
  33. // \/ \/
  34. type ErrUserAlreadyExist struct {
  35. Name string
  36. }
  37. func IsErrUserAlreadyExist(err error) bool {
  38. _, ok := err.(ErrUserAlreadyExist)
  39. return ok
  40. }
  41. func (err ErrUserAlreadyExist) Error() string {
  42. return fmt.Sprintf("user already exists [name: %s]", err.Name)
  43. }
  44. type ErrUserNotExist struct {
  45. UID int64
  46. Name string
  47. }
  48. func IsErrUserNotExist(err error) bool {
  49. _, ok := err.(ErrUserNotExist)
  50. return ok
  51. }
  52. func (err ErrUserNotExist) Error() string {
  53. return fmt.Sprintf("user does not exist [uid: %d, name: %s]", err.UID, err.Name)
  54. }
  55. type ErrEmailAlreadyUsed struct {
  56. Email string
  57. }
  58. func IsErrEmailAlreadyUsed(err error) bool {
  59. _, ok := err.(ErrEmailAlreadyUsed)
  60. return ok
  61. }
  62. func (err ErrEmailAlreadyUsed) Error() string {
  63. return fmt.Sprintf("e-mail has been used [email: %s]", err.Email)
  64. }
  65. type ErrUserOwnRepos struct {
  66. UID int64
  67. }
  68. func IsErrUserOwnRepos(err error) bool {
  69. _, ok := err.(ErrUserOwnRepos)
  70. return ok
  71. }
  72. func (err ErrUserOwnRepos) Error() string {
  73. return fmt.Sprintf("user still has ownership of repositories [uid: %d]", err.UID)
  74. }
  75. type ErrUserHasOrgs struct {
  76. UID int64
  77. }
  78. func IsErrUserHasOrgs(err error) bool {
  79. _, ok := err.(ErrUserHasOrgs)
  80. return ok
  81. }
  82. func (err ErrUserHasOrgs) Error() string {
  83. return fmt.Sprintf("user still has membership of organizations [uid: %d]", err.UID)
  84. }
  85. // __ __.__ __ .__
  86. // / \ / \__| | _|__|
  87. // \ \/\/ / | |/ / |
  88. // \ /| | <| |
  89. // \__/\ / |__|__|_ \__|
  90. // \/ \/
  91. type ErrWikiAlreadyExist struct {
  92. Title string
  93. }
  94. func IsErrWikiAlreadyExist(err error) bool {
  95. _, ok := err.(ErrWikiAlreadyExist)
  96. return ok
  97. }
  98. func (err ErrWikiAlreadyExist) Error() string {
  99. return fmt.Sprintf("wiki page already exists [title: %s]", err.Title)
  100. }
  101. // __________ ___. .__ .__ ____ __.
  102. // \______ \__ _\_ |__ | | |__| ____ | |/ _|____ ___.__.
  103. // | ___/ | \ __ \| | | |/ ___\ | <_/ __ < | |
  104. // | | | | / \_\ \ |_| \ \___ | | \ ___/\___ |
  105. // |____| |____/|___ /____/__|\___ > |____|__ \___ > ____|
  106. // \/ \/ \/ \/\/
  107. type ErrKeyUnableVerify struct {
  108. Result string
  109. }
  110. func IsErrKeyUnableVerify(err error) bool {
  111. _, ok := err.(ErrKeyUnableVerify)
  112. return ok
  113. }
  114. func (err ErrKeyUnableVerify) Error() string {
  115. return fmt.Sprintf("Unable to verify key content [result: %s]", err.Result)
  116. }
  117. type ErrKeyNotExist struct {
  118. ID int64
  119. }
  120. func IsErrKeyNotExist(err error) bool {
  121. _, ok := err.(ErrKeyNotExist)
  122. return ok
  123. }
  124. func (err ErrKeyNotExist) Error() string {
  125. return fmt.Sprintf("public key does not exist [id: %d]", err.ID)
  126. }
  127. type ErrKeyAlreadyExist struct {
  128. OwnerID int64
  129. Content string
  130. }
  131. func IsErrKeyAlreadyExist(err error) bool {
  132. _, ok := err.(ErrKeyAlreadyExist)
  133. return ok
  134. }
  135. func (err ErrKeyAlreadyExist) Error() string {
  136. return fmt.Sprintf("public key already exists [owner_id: %d, content: %s]", err.OwnerID, err.Content)
  137. }
  138. type ErrKeyNameAlreadyUsed struct {
  139. OwnerID int64
  140. Name string
  141. }
  142. func IsErrKeyNameAlreadyUsed(err error) bool {
  143. _, ok := err.(ErrKeyNameAlreadyUsed)
  144. return ok
  145. }
  146. func (err ErrKeyNameAlreadyUsed) Error() string {
  147. return fmt.Sprintf("public key already exists [owner_id: %d, name: %s]", err.OwnerID, err.Name)
  148. }
  149. type ErrDeployKeyNotExist struct {
  150. ID int64
  151. KeyID int64
  152. RepoID int64
  153. }
  154. func IsErrDeployKeyNotExist(err error) bool {
  155. _, ok := err.(ErrDeployKeyNotExist)
  156. return ok
  157. }
  158. func (err ErrDeployKeyNotExist) Error() string {
  159. return fmt.Sprintf("Deploy key does not exist [id: %d, key_id: %d, repo_id: %d]", err.ID, err.KeyID, err.RepoID)
  160. }
  161. type ErrDeployKeyAlreadyExist struct {
  162. KeyID int64
  163. RepoID int64
  164. }
  165. func IsErrDeployKeyAlreadyExist(err error) bool {
  166. _, ok := err.(ErrDeployKeyAlreadyExist)
  167. return ok
  168. }
  169. func (err ErrDeployKeyAlreadyExist) Error() string {
  170. return fmt.Sprintf("public key already exists [key_id: %d, repo_id: %d]", err.KeyID, err.RepoID)
  171. }
  172. type ErrDeployKeyNameAlreadyUsed struct {
  173. RepoID int64
  174. Name string
  175. }
  176. func IsErrDeployKeyNameAlreadyUsed(err error) bool {
  177. _, ok := err.(ErrDeployKeyNameAlreadyUsed)
  178. return ok
  179. }
  180. func (err ErrDeployKeyNameAlreadyUsed) Error() string {
  181. return fmt.Sprintf("public key already exists [repo_id: %d, name: %s]", err.RepoID, err.Name)
  182. }
  183. // _____ ___________ __
  184. // / _ \ ____ ____ ____ ______ _____\__ ___/___ | | __ ____ ____
  185. // / /_\ \_/ ___\/ ___\/ __ \ / ___// ___/ | | / _ \| |/ // __ \ / \
  186. // / | \ \__\ \__\ ___/ \___ \ \___ \ | |( <_> ) <\ ___/| | \
  187. // \____|__ /\___ >___ >___ >____ >____ > |____| \____/|__|_ \\___ >___| /
  188. // \/ \/ \/ \/ \/ \/ \/ \/ \/
  189. type ErrAccessTokenNotExist struct {
  190. SHA string
  191. }
  192. func IsErrAccessTokenNotExist(err error) bool {
  193. _, ok := err.(ErrAccessTokenNotExist)
  194. return ok
  195. }
  196. func (err ErrAccessTokenNotExist) Error() string {
  197. return fmt.Sprintf("access token does not exist [sha: %s]", err.SHA)
  198. }
  199. // ________ .__ __ .__
  200. // \_____ \_______ _________ ____ |__|____________ _/ |_|__| ____ ____
  201. // / | \_ __ \/ ___\__ \ / \| \___ /\__ \\ __\ |/ _ \ / \
  202. // / | \ | \/ /_/ > __ \| | \ |/ / / __ \| | | ( <_> ) | \
  203. // \_______ /__| \___ (____ /___| /__/_____ \(____ /__| |__|\____/|___| /
  204. // \/ /_____/ \/ \/ \/ \/ \/
  205. type ErrLastOrgOwner struct {
  206. UID int64
  207. }
  208. func IsErrLastOrgOwner(err error) bool {
  209. _, ok := err.(ErrLastOrgOwner)
  210. return ok
  211. }
  212. func (err ErrLastOrgOwner) Error() string {
  213. return fmt.Sprintf("user is the last member of owner team [uid: %d]", err.UID)
  214. }
  215. // __________ .__ __
  216. // \______ \ ____ ______ ____ _____|__|/ |_ ___________ ___.__.
  217. // | _// __ \\____ \ / _ \/ ___/ \ __\/ _ \_ __ < | |
  218. // | | \ ___/| |_> > <_> )___ \| || | ( <_> ) | \/\___ |
  219. // |____|_ /\___ > __/ \____/____ >__||__| \____/|__| / ____|
  220. // \/ \/|__| \/ \/
  221. type ErrRepoNotExist struct {
  222. ID int64
  223. UID int64
  224. Name string
  225. }
  226. func IsErrRepoNotExist(err error) bool {
  227. _, ok := err.(ErrRepoNotExist)
  228. return ok
  229. }
  230. func (err ErrRepoNotExist) Error() string {
  231. return fmt.Sprintf("repository does not exist [id: %d, uid: %d, name: %s]", err.ID, err.UID, err.Name)
  232. }
  233. type ErrRepoAlreadyExist struct {
  234. Uname string
  235. Name string
  236. }
  237. func IsErrRepoAlreadyExist(err error) bool {
  238. _, ok := err.(ErrRepoAlreadyExist)
  239. return ok
  240. }
  241. func (err ErrRepoAlreadyExist) Error() string {
  242. return fmt.Sprintf("repository already exists [uname: %s, name: %s]", err.Uname, err.Name)
  243. }
  244. type ErrInvalidCloneAddr struct {
  245. IsURLError bool
  246. IsInvalidPath bool
  247. IsPermissionDenied bool
  248. }
  249. func IsErrInvalidCloneAddr(err error) bool {
  250. _, ok := err.(ErrInvalidCloneAddr)
  251. return ok
  252. }
  253. func (err ErrInvalidCloneAddr) Error() string {
  254. return fmt.Sprintf("invalid clone address [is_url_error: %v, is_invalid_path: %v, is_permission_denied: %v]",
  255. err.IsURLError, err.IsInvalidPath, err.IsPermissionDenied)
  256. }
  257. type ErrUpdateTaskNotExist struct {
  258. UUID string
  259. }
  260. func IsErrUpdateTaskNotExist(err error) bool {
  261. _, ok := err.(ErrUpdateTaskNotExist)
  262. return ok
  263. }
  264. func (err ErrUpdateTaskNotExist) Error() string {
  265. return fmt.Sprintf("update task does not exist [uuid: %s]", err.UUID)
  266. }
  267. type ErrReleaseAlreadyExist struct {
  268. TagName string
  269. }
  270. func IsErrReleaseAlreadyExist(err error) bool {
  271. _, ok := err.(ErrReleaseAlreadyExist)
  272. return ok
  273. }
  274. func (err ErrReleaseAlreadyExist) Error() string {
  275. return fmt.Sprintf("Release tag already exist [tag_name: %s]", err.TagName)
  276. }
  277. type ErrReleaseNotExist struct {
  278. ID int64
  279. TagName string
  280. }
  281. func IsErrReleaseNotExist(err error) bool {
  282. _, ok := err.(ErrReleaseNotExist)
  283. return ok
  284. }
  285. func (err ErrReleaseNotExist) Error() string {
  286. return fmt.Sprintf("Release tag does not exist [id: %d, tag_name: %s]", err.ID, err.TagName)
  287. }
  288. // __ __ ___. .__ __
  289. // / \ / \ ____\_ |__ | |__ ____ ____ | | __
  290. // \ \/\/ // __ \| __ \| | \ / _ \ / _ \| |/ /
  291. // \ /\ ___/| \_\ \ Y ( <_> | <_> ) <
  292. // \__/\ / \___ >___ /___| /\____/ \____/|__|_ \
  293. // \/ \/ \/ \/ \/
  294. type ErrWebhookNotExist struct {
  295. ID int64
  296. }
  297. func IsErrWebhookNotExist(err error) bool {
  298. _, ok := err.(ErrWebhookNotExist)
  299. return ok
  300. }
  301. func (err ErrWebhookNotExist) Error() string {
  302. return fmt.Sprintf("webhook does not exist [id: %d]", err.ID)
  303. }
  304. // .___
  305. // | | ______ ________ __ ____
  306. // | |/ ___// ___/ | \_/ __ \
  307. // | |\___ \ \___ \| | /\ ___/
  308. // |___/____ >____ >____/ \___ >
  309. // \/ \/ \/
  310. type ErrIssueNotExist struct {
  311. ID int64
  312. RepoID int64
  313. Index int64
  314. }
  315. func IsErrIssueNotExist(err error) bool {
  316. _, ok := err.(ErrIssueNotExist)
  317. return ok
  318. }
  319. func (err ErrIssueNotExist) Error() string {
  320. return fmt.Sprintf("issue does not exist [id: %d, repo_id: %d, index: %d]", err.ID, err.RepoID, err.Index)
  321. }
  322. // __________ .__ .__ __________ __
  323. // \______ \__ __| | | |\______ \ ____ ________ __ ____ _______/ |_
  324. // | ___/ | \ | | | | _// __ \/ ____/ | \_/ __ \ / ___/\ __\
  325. // | | | | / |_| |_| | \ ___< <_| | | /\ ___/ \___ \ | |
  326. // |____| |____/|____/____/____|_ /\___ >__ |____/ \___ >____ > |__|
  327. // \/ \/ |__| \/ \/
  328. type ErrPullRequestNotExist struct {
  329. ID int64
  330. IssueID int64
  331. HeadRepoID int64
  332. BaseRepoID int64
  333. HeadBarcnh string
  334. BaseBranch string
  335. }
  336. func IsErrPullRequestNotExist(err error) bool {
  337. _, ok := err.(ErrPullRequestNotExist)
  338. return ok
  339. }
  340. func (err ErrPullRequestNotExist) Error() string {
  341. 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]",
  342. err.ID, err.IssueID, err.HeadRepoID, err.BaseRepoID, err.HeadBarcnh, err.BaseBranch)
  343. }
  344. // _________ __
  345. // \_ ___ \ ____ _____ _____ ____ _____/ |_
  346. // / \ \/ / _ \ / \ / \_/ __ \ / \ __\
  347. // \ \___( <_> ) Y Y \ Y Y \ ___/| | \ |
  348. // \______ /\____/|__|_| /__|_| /\___ >___| /__|
  349. // \/ \/ \/ \/ \/
  350. type ErrCommentNotExist struct {
  351. ID int64
  352. }
  353. func IsErrCommentNotExist(err error) bool {
  354. _, ok := err.(ErrCommentNotExist)
  355. return ok
  356. }
  357. func (err ErrCommentNotExist) Error() string {
  358. return fmt.Sprintf("comment does not exist [id: %d]", err.ID)
  359. }
  360. // .____ ___. .__
  361. // | | _____ \_ |__ ____ | |
  362. // | | \__ \ | __ \_/ __ \| |
  363. // | |___ / __ \| \_\ \ ___/| |__
  364. // |_______ (____ /___ /\___ >____/
  365. // \/ \/ \/ \/
  366. type ErrLabelNotExist struct {
  367. ID int64
  368. }
  369. func IsErrLabelNotExist(err error) bool {
  370. _, ok := err.(ErrLabelNotExist)
  371. return ok
  372. }
  373. func (err ErrLabelNotExist) Error() string {
  374. return fmt.Sprintf("label does not exist [id: %d]", err.ID)
  375. }
  376. // _____ .__.__ __
  377. // / \ |__| | ____ _______/ |_ ____ ____ ____
  378. // / \ / \| | | _/ __ \ / ___/\ __\/ _ \ / \_/ __ \
  379. // / Y \ | |_\ ___/ \___ \ | | ( <_> ) | \ ___/
  380. // \____|__ /__|____/\___ >____ > |__| \____/|___| /\___ >
  381. // \/ \/ \/ \/ \/
  382. type ErrMilestoneNotExist struct {
  383. ID int64
  384. RepoID int64
  385. }
  386. func IsErrMilestoneNotExist(err error) bool {
  387. _, ok := err.(ErrMilestoneNotExist)
  388. return ok
  389. }
  390. func (err ErrMilestoneNotExist) Error() string {
  391. return fmt.Sprintf("milestone does not exist [id: %d, repo_id: %d]", err.ID, err.RepoID)
  392. }
  393. // _____ __ __ .__ __
  394. // / _ \_/ |__/ |______ ____ | |__ _____ ____ _____/ |_
  395. // / /_\ \ __\ __\__ \ _/ ___\| | \ / \_/ __ \ / \ __\
  396. // / | \ | | | / __ \\ \___| Y \ Y Y \ ___/| | \ |
  397. // \____|__ /__| |__| (____ /\___ >___| /__|_| /\___ >___| /__|
  398. // \/ \/ \/ \/ \/ \/ \/
  399. type ErrAttachmentNotExist struct {
  400. ID int64
  401. UUID string
  402. }
  403. func IsErrAttachmentNotExist(err error) bool {
  404. _, ok := err.(ErrAttachmentNotExist)
  405. return ok
  406. }
  407. func (err ErrAttachmentNotExist) Error() string {
  408. return fmt.Sprintf("attachment does not exist [id: %d, uuid: %s]", err.ID, err.UUID)
  409. }