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 16 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
10 years ago
10 years ago
10 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604
  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. type ErrReachLimitOfRepo struct {
  86. Limit int
  87. }
  88. func IsErrReachLimitOfRepo(err error) bool {
  89. _, ok := err.(ErrReachLimitOfRepo)
  90. return ok
  91. }
  92. func (err ErrReachLimitOfRepo) Error() string {
  93. return fmt.Sprintf("user has reached maximum limit of repositories [limit: %d]", err.Limit)
  94. }
  95. // __ __.__ __ .__
  96. // / \ / \__| | _|__|
  97. // \ \/\/ / | |/ / |
  98. // \ /| | <| |
  99. // \__/\ / |__|__|_ \__|
  100. // \/ \/
  101. type ErrWikiAlreadyExist struct {
  102. Title string
  103. }
  104. func IsErrWikiAlreadyExist(err error) bool {
  105. _, ok := err.(ErrWikiAlreadyExist)
  106. return ok
  107. }
  108. func (err ErrWikiAlreadyExist) Error() string {
  109. return fmt.Sprintf("wiki page already exists [title: %s]", err.Title)
  110. }
  111. // __________ ___. .__ .__ ____ __.
  112. // \______ \__ _\_ |__ | | |__| ____ | |/ _|____ ___.__.
  113. // | ___/ | \ __ \| | | |/ ___\ | <_/ __ < | |
  114. // | | | | / \_\ \ |_| \ \___ | | \ ___/\___ |
  115. // |____| |____/|___ /____/__|\___ > |____|__ \___ > ____|
  116. // \/ \/ \/ \/\/
  117. type ErrKeyUnableVerify struct {
  118. Result string
  119. }
  120. func IsErrKeyUnableVerify(err error) bool {
  121. _, ok := err.(ErrKeyUnableVerify)
  122. return ok
  123. }
  124. func (err ErrKeyUnableVerify) Error() string {
  125. return fmt.Sprintf("Unable to verify key content [result: %s]", err.Result)
  126. }
  127. type ErrKeyNotExist struct {
  128. ID int64
  129. }
  130. func IsErrKeyNotExist(err error) bool {
  131. _, ok := err.(ErrKeyNotExist)
  132. return ok
  133. }
  134. func (err ErrKeyNotExist) Error() string {
  135. return fmt.Sprintf("public key does not exist [id: %d]", err.ID)
  136. }
  137. type ErrKeyAlreadyExist struct {
  138. OwnerID int64
  139. Content string
  140. }
  141. func IsErrKeyAlreadyExist(err error) bool {
  142. _, ok := err.(ErrKeyAlreadyExist)
  143. return ok
  144. }
  145. func (err ErrKeyAlreadyExist) Error() string {
  146. return fmt.Sprintf("public key already exists [owner_id: %d, content: %s]", err.OwnerID, err.Content)
  147. }
  148. type ErrKeyNameAlreadyUsed struct {
  149. OwnerID int64
  150. Name string
  151. }
  152. func IsErrKeyNameAlreadyUsed(err error) bool {
  153. _, ok := err.(ErrKeyNameAlreadyUsed)
  154. return ok
  155. }
  156. func (err ErrKeyNameAlreadyUsed) Error() string {
  157. return fmt.Sprintf("public key already exists [owner_id: %d, name: %s]", err.OwnerID, err.Name)
  158. }
  159. type ErrKeyAccessDenied struct {
  160. UserID int64
  161. KeyID int64
  162. Note string
  163. }
  164. func IsErrKeyAccessDenied(err error) bool {
  165. _, ok := err.(ErrKeyAccessDenied)
  166. return ok
  167. }
  168. func (err ErrKeyAccessDenied) Error() string {
  169. return fmt.Sprintf("user does not have access to the key [user_id: %d, key_id: %d, note: %s]",
  170. err.UserID, err.KeyID, err.Note)
  171. }
  172. type ErrDeployKeyNotExist struct {
  173. ID int64
  174. KeyID int64
  175. RepoID int64
  176. }
  177. func IsErrDeployKeyNotExist(err error) bool {
  178. _, ok := err.(ErrDeployKeyNotExist)
  179. return ok
  180. }
  181. func (err ErrDeployKeyNotExist) Error() string {
  182. return fmt.Sprintf("Deploy key does not exist [id: %d, key_id: %d, repo_id: %d]", err.ID, err.KeyID, err.RepoID)
  183. }
  184. type ErrDeployKeyAlreadyExist struct {
  185. KeyID int64
  186. RepoID int64
  187. }
  188. func IsErrDeployKeyAlreadyExist(err error) bool {
  189. _, ok := err.(ErrDeployKeyAlreadyExist)
  190. return ok
  191. }
  192. func (err ErrDeployKeyAlreadyExist) Error() string {
  193. return fmt.Sprintf("public key already exists [key_id: %d, repo_id: %d]", err.KeyID, err.RepoID)
  194. }
  195. type ErrDeployKeyNameAlreadyUsed struct {
  196. RepoID int64
  197. Name string
  198. }
  199. func IsErrDeployKeyNameAlreadyUsed(err error) bool {
  200. _, ok := err.(ErrDeployKeyNameAlreadyUsed)
  201. return ok
  202. }
  203. func (err ErrDeployKeyNameAlreadyUsed) Error() string {
  204. return fmt.Sprintf("public key already exists [repo_id: %d, name: %s]", err.RepoID, err.Name)
  205. }
  206. // _____ ___________ __
  207. // / _ \ ____ ____ ____ ______ _____\__ ___/___ | | __ ____ ____
  208. // / /_\ \_/ ___\/ ___\/ __ \ / ___// ___/ | | / _ \| |/ // __ \ / \
  209. // / | \ \__\ \__\ ___/ \___ \ \___ \ | |( <_> ) <\ ___/| | \
  210. // \____|__ /\___ >___ >___ >____ >____ > |____| \____/|__|_ \\___ >___| /
  211. // \/ \/ \/ \/ \/ \/ \/ \/ \/
  212. type ErrAccessTokenNotExist struct {
  213. SHA string
  214. }
  215. func IsErrAccessTokenNotExist(err error) bool {
  216. _, ok := err.(ErrAccessTokenNotExist)
  217. return ok
  218. }
  219. func (err ErrAccessTokenNotExist) Error() string {
  220. return fmt.Sprintf("access token does not exist [sha: %s]", err.SHA)
  221. }
  222. // ________ .__ __ .__
  223. // \_____ \_______ _________ ____ |__|____________ _/ |_|__| ____ ____
  224. // / | \_ __ \/ ___\__ \ / \| \___ /\__ \\ __\ |/ _ \ / \
  225. // / | \ | \/ /_/ > __ \| | \ |/ / / __ \| | | ( <_> ) | \
  226. // \_______ /__| \___ (____ /___| /__/_____ \(____ /__| |__|\____/|___| /
  227. // \/ /_____/ \/ \/ \/ \/ \/
  228. type ErrLastOrgOwner struct {
  229. UID int64
  230. }
  231. func IsErrLastOrgOwner(err error) bool {
  232. _, ok := err.(ErrLastOrgOwner)
  233. return ok
  234. }
  235. func (err ErrLastOrgOwner) Error() string {
  236. return fmt.Sprintf("user is the last member of owner team [uid: %d]", err.UID)
  237. }
  238. // __________ .__ __
  239. // \______ \ ____ ______ ____ _____|__|/ |_ ___________ ___.__.
  240. // | _// __ \\____ \ / _ \/ ___/ \ __\/ _ \_ __ < | |
  241. // | | \ ___/| |_> > <_> )___ \| || | ( <_> ) | \/\___ |
  242. // |____|_ /\___ > __/ \____/____ >__||__| \____/|__| / ____|
  243. // \/ \/|__| \/ \/
  244. type ErrRepoNotExist struct {
  245. ID int64
  246. UID int64
  247. Name string
  248. }
  249. func IsErrRepoNotExist(err error) bool {
  250. _, ok := err.(ErrRepoNotExist)
  251. return ok
  252. }
  253. func (err ErrRepoNotExist) Error() string {
  254. return fmt.Sprintf("repository does not exist [id: %d, uid: %d, name: %s]", err.ID, err.UID, err.Name)
  255. }
  256. type ErrRepoAlreadyExist struct {
  257. Uname string
  258. Name string
  259. }
  260. func IsErrRepoAlreadyExist(err error) bool {
  261. _, ok := err.(ErrRepoAlreadyExist)
  262. return ok
  263. }
  264. func (err ErrRepoAlreadyExist) Error() string {
  265. return fmt.Sprintf("repository already exists [uname: %s, name: %s]", err.Uname, err.Name)
  266. }
  267. type ErrInvalidCloneAddr struct {
  268. IsURLError bool
  269. IsInvalidPath bool
  270. IsPermissionDenied bool
  271. }
  272. func IsErrInvalidCloneAddr(err error) bool {
  273. _, ok := err.(ErrInvalidCloneAddr)
  274. return ok
  275. }
  276. func (err ErrInvalidCloneAddr) Error() string {
  277. return fmt.Sprintf("invalid clone address [is_url_error: %v, is_invalid_path: %v, is_permission_denied: %v]",
  278. err.IsURLError, err.IsInvalidPath, err.IsPermissionDenied)
  279. }
  280. type ErrUpdateTaskNotExist struct {
  281. UUID string
  282. }
  283. func IsErrUpdateTaskNotExist(err error) bool {
  284. _, ok := err.(ErrUpdateTaskNotExist)
  285. return ok
  286. }
  287. func (err ErrUpdateTaskNotExist) Error() string {
  288. return fmt.Sprintf("update task does not exist [uuid: %s]", err.UUID)
  289. }
  290. type ErrReleaseAlreadyExist struct {
  291. TagName string
  292. }
  293. func IsErrReleaseAlreadyExist(err error) bool {
  294. _, ok := err.(ErrReleaseAlreadyExist)
  295. return ok
  296. }
  297. func (err ErrReleaseAlreadyExist) Error() string {
  298. return fmt.Sprintf("Release tag already exist [tag_name: %s]", err.TagName)
  299. }
  300. type ErrReleaseNotExist struct {
  301. ID int64
  302. TagName string
  303. }
  304. func IsErrReleaseNotExist(err error) bool {
  305. _, ok := err.(ErrReleaseNotExist)
  306. return ok
  307. }
  308. func (err ErrReleaseNotExist) Error() string {
  309. return fmt.Sprintf("Release tag does not exist [id: %d, tag_name: %s]", err.ID, err.TagName)
  310. }
  311. // __________ .__
  312. // \______ \____________ ____ ____ | |__
  313. // | | _/\_ __ \__ \ / \_/ ___\| | \
  314. // | | \ | | \// __ \| | \ \___| Y \
  315. // |______ / |__| (____ /___| /\___ >___| /
  316. // \/ \/ \/ \/ \/
  317. type ErrBranchNotExist struct {
  318. Name string
  319. }
  320. func IsErrBranchNotExist(err error) bool {
  321. _, ok := err.(ErrBranchNotExist)
  322. return ok
  323. }
  324. func (err ErrBranchNotExist) Error() string {
  325. return fmt.Sprintf("Branch does not exist [name: %s]", err.Name)
  326. }
  327. // __ __ ___. .__ __
  328. // / \ / \ ____\_ |__ | |__ ____ ____ | | __
  329. // \ \/\/ // __ \| __ \| | \ / _ \ / _ \| |/ /
  330. // \ /\ ___/| \_\ \ Y ( <_> | <_> ) <
  331. // \__/\ / \___ >___ /___| /\____/ \____/|__|_ \
  332. // \/ \/ \/ \/ \/
  333. type ErrWebhookNotExist struct {
  334. ID int64
  335. }
  336. func IsErrWebhookNotExist(err error) bool {
  337. _, ok := err.(ErrWebhookNotExist)
  338. return ok
  339. }
  340. func (err ErrWebhookNotExist) Error() string {
  341. return fmt.Sprintf("webhook does not exist [id: %d]", err.ID)
  342. }
  343. // .___
  344. // | | ______ ________ __ ____
  345. // | |/ ___// ___/ | \_/ __ \
  346. // | |\___ \ \___ \| | /\ ___/
  347. // |___/____ >____ >____/ \___ >
  348. // \/ \/ \/
  349. type ErrIssueNotExist struct {
  350. ID int64
  351. RepoID int64
  352. Index int64
  353. }
  354. func IsErrIssueNotExist(err error) bool {
  355. _, ok := err.(ErrIssueNotExist)
  356. return ok
  357. }
  358. func (err ErrIssueNotExist) Error() string {
  359. return fmt.Sprintf("issue does not exist [id: %d, repo_id: %d, index: %d]", err.ID, err.RepoID, err.Index)
  360. }
  361. // __________ .__ .__ __________ __
  362. // \______ \__ __| | | |\______ \ ____ ________ __ ____ _______/ |_
  363. // | ___/ | \ | | | | _// __ \/ ____/ | \_/ __ \ / ___/\ __\
  364. // | | | | / |_| |_| | \ ___< <_| | | /\ ___/ \___ \ | |
  365. // |____| |____/|____/____/____|_ /\___ >__ |____/ \___ >____ > |__|
  366. // \/ \/ |__| \/ \/
  367. type ErrPullRequestNotExist struct {
  368. ID int64
  369. IssueID int64
  370. HeadRepoID int64
  371. BaseRepoID int64
  372. HeadBarcnh string
  373. BaseBranch string
  374. }
  375. func IsErrPullRequestNotExist(err error) bool {
  376. _, ok := err.(ErrPullRequestNotExist)
  377. return ok
  378. }
  379. func (err ErrPullRequestNotExist) Error() string {
  380. 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]",
  381. err.ID, err.IssueID, err.HeadRepoID, err.BaseRepoID, err.HeadBarcnh, err.BaseBranch)
  382. }
  383. // _________ __
  384. // \_ ___ \ ____ _____ _____ ____ _____/ |_
  385. // / \ \/ / _ \ / \ / \_/ __ \ / \ __\
  386. // \ \___( <_> ) Y Y \ Y Y \ ___/| | \ |
  387. // \______ /\____/|__|_| /__|_| /\___ >___| /__|
  388. // \/ \/ \/ \/ \/
  389. type ErrCommentNotExist struct {
  390. ID int64
  391. }
  392. func IsErrCommentNotExist(err error) bool {
  393. _, ok := err.(ErrCommentNotExist)
  394. return ok
  395. }
  396. func (err ErrCommentNotExist) Error() string {
  397. return fmt.Sprintf("comment does not exist [id: %d]", err.ID)
  398. }
  399. // .____ ___. .__
  400. // | | _____ \_ |__ ____ | |
  401. // | | \__ \ | __ \_/ __ \| |
  402. // | |___ / __ \| \_\ \ ___/| |__
  403. // |_______ (____ /___ /\___ >____/
  404. // \/ \/ \/ \/
  405. type ErrLabelNotExist struct {
  406. ID int64
  407. }
  408. func IsErrLabelNotExist(err error) bool {
  409. _, ok := err.(ErrLabelNotExist)
  410. return ok
  411. }
  412. func (err ErrLabelNotExist) Error() string {
  413. return fmt.Sprintf("label does not exist [id: %d]", err.ID)
  414. }
  415. // _____ .__.__ __
  416. // / \ |__| | ____ _______/ |_ ____ ____ ____
  417. // / \ / \| | | _/ __ \ / ___/\ __\/ _ \ / \_/ __ \
  418. // / Y \ | |_\ ___/ \___ \ | | ( <_> ) | \ ___/
  419. // \____|__ /__|____/\___ >____ > |__| \____/|___| /\___ >
  420. // \/ \/ \/ \/ \/
  421. type ErrMilestoneNotExist struct {
  422. ID int64
  423. RepoID int64
  424. }
  425. func IsErrMilestoneNotExist(err error) bool {
  426. _, ok := err.(ErrMilestoneNotExist)
  427. return ok
  428. }
  429. func (err ErrMilestoneNotExist) Error() string {
  430. return fmt.Sprintf("milestone does not exist [id: %d, repo_id: %d]", err.ID, err.RepoID)
  431. }
  432. // _____ __ __ .__ __
  433. // / _ \_/ |__/ |______ ____ | |__ _____ ____ _____/ |_
  434. // / /_\ \ __\ __\__ \ _/ ___\| | \ / \_/ __ \ / \ __\
  435. // / | \ | | | / __ \\ \___| Y \ Y Y \ ___/| | \ |
  436. // \____|__ /__| |__| (____ /\___ >___| /__|_| /\___ >___| /__|
  437. // \/ \/ \/ \/ \/ \/ \/
  438. type ErrAttachmentNotExist struct {
  439. ID int64
  440. UUID string
  441. }
  442. func IsErrAttachmentNotExist(err error) bool {
  443. _, ok := err.(ErrAttachmentNotExist)
  444. return ok
  445. }
  446. func (err ErrAttachmentNotExist) Error() string {
  447. return fmt.Sprintf("attachment does not exist [id: %d, uuid: %s]", err.ID, err.UUID)
  448. }
  449. // _____ __ .__ __ .__ __ .__
  450. // / _ \ __ ___/ |_| |__ ____ _____/ |_|__| ____ _____ _/ |_|__| ____ ____
  451. // / /_\ \| | \ __\ | \_/ __ \ / \ __\ |/ ___\\__ \\ __\ |/ _ \ / \
  452. // / | \ | /| | | Y \ ___/| | \ | | \ \___ / __ \| | | ( <_> ) | \
  453. // \____|__ /____/ |__| |___| /\___ >___| /__| |__|\___ >____ /__| |__|\____/|___| /
  454. // \/ \/ \/ \/ \/ \/ \/
  455. type ErrAuthenticationNotExist struct {
  456. ID int64
  457. }
  458. func IsErrAuthenticationNotExist(err error) bool {
  459. _, ok := err.(ErrAuthenticationNotExist)
  460. return ok
  461. }
  462. func (err ErrAuthenticationNotExist) Error() string {
  463. return fmt.Sprintf("authentication does not exist [id: %d]", err.ID)
  464. }
  465. // ___________
  466. // \__ ___/___ _____ _____
  467. // | |_/ __ \\__ \ / \
  468. // | |\ ___/ / __ \| Y Y \
  469. // |____| \___ >____ /__|_| /
  470. // \/ \/ \/
  471. type ErrTeamAlreadyExist struct {
  472. OrgID int64
  473. Name string
  474. }
  475. func IsErrTeamAlreadyExist(err error) bool {
  476. _, ok := err.(ErrTeamAlreadyExist)
  477. return ok
  478. }
  479. func (err ErrTeamAlreadyExist) Error() string {
  480. return fmt.Sprintf("team already exists [org_id: %d, name: %s]", err.OrgID, err.Name)
  481. }