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.

dataset.go 2.8 kB

3 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. package object
  2. import (
  3. "github.com/casbin/casvisor/util"
  4. "xorm.io/core"
  5. )
  6. type TreeItem struct {
  7. Key string `xorm:"varchar(100)" json:"key"`
  8. Title string `xorm:"varchar(100)" json:"title"`
  9. Content string `xorm:"mediumtext" json:"content"`
  10. TitleEn string `xorm:"varchar(100)" json:"titleEn"`
  11. ContentEn string `xorm:"mediumtext" json:"contentEn"`
  12. Children []*TreeItem `xorm:"varchar(1000)" json:"children"`
  13. }
  14. type Dataset struct {
  15. Owner string `xorm:"varchar(100) notnull pk" json:"owner"`
  16. Name string `xorm:"varchar(100) notnull pk" json:"name"`
  17. CreatedTime string `xorm:"varchar(100)" json:"createdTime"`
  18. StartDate string `xorm:"varchar(100)" json:"startDate"`
  19. EndDate string `xorm:"varchar(100)" json:"endDate"`
  20. FullName string `xorm:"varchar(100)" json:"fullName"`
  21. Organizer string `xorm:"varchar(100)" json:"organizer"`
  22. Location string `xorm:"varchar(100)" json:"location"`
  23. Address string `xorm:"varchar(100)" json:"address"`
  24. Status string `xorm:"varchar(100)" json:"status"`
  25. Language string `xorm:"varchar(100)" json:"language"`
  26. Tags []string `xorm:"mediumtext" json:"tags"`
  27. Carousels []string `xorm:"mediumtext" json:"carousels"`
  28. IntroText string `xorm:"mediumtext" json:"introText"`
  29. DefaultItem string `xorm:"mediumtext" json:"defaultItem"`
  30. TreeItems []*TreeItem `xorm:"mediumtext" json:"treeItems"`
  31. }
  32. func GetGlobalDatasets() []*Dataset {
  33. datasets := []*Dataset{}
  34. err := adapter.engine.Asc("owner").Desc("created_time").Find(&datasets)
  35. if err != nil {
  36. panic(err)
  37. }
  38. return datasets
  39. }
  40. func GetDatasets(owner string) []*Dataset {
  41. datasets := []*Dataset{}
  42. err := adapter.engine.Desc("created_time").Find(&datasets, &Dataset{Owner: owner})
  43. if err != nil {
  44. panic(err)
  45. }
  46. return datasets
  47. }
  48. func getDataset(owner string, name string) *Dataset {
  49. dataset := Dataset{Owner: owner, Name: name}
  50. existed, err := adapter.engine.Get(&dataset)
  51. if err != nil {
  52. panic(err)
  53. }
  54. if existed {
  55. return &dataset
  56. } else {
  57. return nil
  58. }
  59. }
  60. func GetDataset(id string) *Dataset {
  61. owner, name := util.GetOwnerAndNameFromId(id)
  62. return getDataset(owner, name)
  63. }
  64. func UpdateDataset(id string, dataset *Dataset) bool {
  65. owner, name := util.GetOwnerAndNameFromId(id)
  66. if getDataset(owner, name) == nil {
  67. return false
  68. }
  69. _, err := adapter.engine.ID(core.PK{owner, name}).AllCols().Update(dataset)
  70. if err != nil {
  71. panic(err)
  72. }
  73. //return affected != 0
  74. return true
  75. }
  76. func AddDataset(dataset *Dataset) bool {
  77. affected, err := adapter.engine.Insert(dataset)
  78. if err != nil {
  79. panic(err)
  80. }
  81. return affected != 0
  82. }
  83. func DeleteDataset(dataset *Dataset) bool {
  84. affected, err := adapter.engine.ID(core.PK{dataset.Owner, dataset.Name}).Delete(&Dataset{})
  85. if err != nil {
  86. panic(err)
  87. }
  88. return affected != 0
  89. }