error.go 10.0 KB

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