error.go 10 KB

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