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.

blockchain.go 3.0 kB

4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
3 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. package models
  2. import (
  3. "code.gitea.io/gitea/modules/timeutil"
  4. "fmt"
  5. "time"
  6. )
  7. type BlockChainCommitStatus int
  8. const (
  9. BlockChainCommitInit BlockChainCommitStatus = iota
  10. BlockChainCommitSuccess
  11. BlockChainCommitFailed
  12. )
  13. type BlockChain struct {
  14. ID int64 `xorm:"pk autoincr"`
  15. PrID int64 `xorm:"INDEX NOT NULL unique"`
  16. CommitID string `xorm:"INDEX NOT NULL unique"`
  17. Contributor string `xorm:"INDEX NOT NULL"`
  18. ContractAddress string `xorm:"INDEX NOT NULL"`
  19. Status BlockChainCommitStatus `xorm:"INDEX NOT NULL DEFAULT 0"`
  20. Amount int64 `xorm:"INDEX"`
  21. UserID int64 `xorm:"INDEX"`
  22. RepoID int64 `xorm:"INDEX"`
  23. TransactionHash string `xorm:"INDEX"`
  24. CreatedUnix timeutil.TimeStamp `xorm:"created"`
  25. UpdatedUnix timeutil.TimeStamp `xorm:"updated"`
  26. DeletedAt time.Time `xorm:"deleted"`
  27. User *User `xorm:"-"`
  28. Repo *Repository `xorm:"-"`
  29. }
  30. func getBlockChainByID(e Engine, id int64) (*BlockChain, error) {
  31. blockChain := new(BlockChain)
  32. has, err := e.ID(id).Get(blockChain)
  33. if err != nil {
  34. return nil, err
  35. } else if !has {
  36. return nil, fmt.Errorf("get block_chain by id failed(%d)", id)
  37. }
  38. return blockChain, nil
  39. }
  40. func GetBlockChainByID(id int64) (*BlockChain, error) {
  41. return getBlockChainByID(x, id)
  42. }
  43. func getBlockChainByPrID(e Engine, prId int64) (*BlockChain, error) {
  44. blockChain := new(BlockChain)
  45. has, err := e.Where("pr_id = ?", prId).Get(blockChain)
  46. if err != nil {
  47. return nil, err
  48. } else if !has {
  49. return nil, fmt.Errorf("get block_chain by pr_id failed(%d)", prId)
  50. }
  51. return blockChain, nil
  52. }
  53. func GetBlockChainByPrID(prId int64) (*BlockChain, error) {
  54. return getBlockChainByPrID(x, prId)
  55. }
  56. func getBlockChainByCommitID(e Engine, commitID string) (*BlockChain, error) {
  57. blockChain := new(BlockChain)
  58. has, err := e.Where("commit_id = ?", commitID).Get(blockChain)
  59. if err != nil {
  60. return nil, err
  61. } else if !has {
  62. return nil, fmt.Errorf("get block_chain by commitID failed(%s)", commitID)
  63. }
  64. return blockChain, nil
  65. }
  66. func GetBlockChainByCommitID(commitID string) (*BlockChain, error) {
  67. return getBlockChainByCommitID(x, commitID)
  68. }
  69. func updateBlockChainCols(e Engine, blockChain *BlockChain, cols ...string) error {
  70. _, err := e.ID(blockChain.ID).Cols(cols...).Update(blockChain)
  71. return err
  72. }
  73. func UpdateBlockChainCols(blockChain *BlockChain, cols ...string) error {
  74. return updateBlockChainCols(x, blockChain, cols...)
  75. }
  76. func GetBlockChainUnSuccessCommits() ([]*BlockChain, error) {
  77. blockChains := make([]*BlockChain, 0, 10)
  78. return blockChains, x.
  79. Where("status != ?", BlockChainCommitSuccess).
  80. Limit(100).
  81. Find(&blockChains)
  82. }
  83. func InsertBlockChain(blockChain *BlockChain) (_ *BlockChain, err error) {
  84. if _, err := x.Insert(blockChain); err != nil {
  85. return nil, err
  86. }
  87. return blockChain, nil
  88. }