annotations.go 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. package annotations
  2. import "github.com/grafana/grafana/pkg/components/simplejson"
  3. type Repository interface {
  4. Save(item *Item) error
  5. Update(item *Item) error
  6. Find(query *ItemQuery) ([]*ItemDTO, error)
  7. Delete(params *DeleteParams) error
  8. }
  9. type ItemQuery struct {
  10. OrgId int64 `json:"orgId"`
  11. From int64 `json:"from"`
  12. To int64 `json:"to"`
  13. AlertId int64 `json:"alertId"`
  14. DashboardId int64 `json:"dashboardId"`
  15. PanelId int64 `json:"panelId"`
  16. Tags []string `json:"tags"`
  17. Limit int64 `json:"limit"`
  18. }
  19. type PostParams struct {
  20. DashboardId int64 `json:"dashboardId"`
  21. PanelId int64 `json:"panelId"`
  22. Epoch int64 `json:"epoch"`
  23. Title string `json:"title"`
  24. Text string `json:"text"`
  25. Icon string `json:"icon"`
  26. }
  27. type DeleteParams struct {
  28. Id int64 `json:"id"`
  29. AlertId int64 `json:"alertId"`
  30. DashboardId int64 `json:"dashboardId"`
  31. PanelId int64 `json:"panelId"`
  32. RegionId int64 `json:"regionId"`
  33. }
  34. var repositoryInstance Repository
  35. func GetRepository() Repository {
  36. return repositoryInstance
  37. }
  38. func SetRepository(rep Repository) {
  39. repositoryInstance = rep
  40. }
  41. type Item struct {
  42. Id int64 `json:"id"`
  43. OrgId int64 `json:"orgId"`
  44. UserId int64 `json:"userId"`
  45. DashboardId int64 `json:"dashboardId"`
  46. PanelId int64 `json:"panelId"`
  47. RegionId int64 `json:"regionId"`
  48. Text string `json:"text"`
  49. AlertId int64 `json:"alertId"`
  50. PrevState string `json:"prevState"`
  51. NewState string `json:"newState"`
  52. Epoch int64 `json:"epoch"`
  53. Tags []string `json:"tags"`
  54. Data *simplejson.Json `json:"data"`
  55. // needed until we remove it from db
  56. Type string
  57. Title string
  58. }
  59. type ItemDTO struct {
  60. Id int64 `json:"id"`
  61. AlertId int64 `json:"alertId"`
  62. AlertName string `json:"alertName"`
  63. DashboardId int64 `json:"dashboardId"`
  64. PanelId int64 `json:"panelId"`
  65. UserId int64 `json:"userId"`
  66. NewState string `json:"newState"`
  67. PrevState string `json:"prevState"`
  68. Time int64 `json:"time"`
  69. Text string `json:"text"`
  70. RegionId int64 `json:"regionId"`
  71. Tags []string `json:"tags"`
  72. Login string `json:"login"`
  73. Email string `json:"email"`
  74. AvatarUrl string `json:"avatarUrl"`
  75. Data *simplejson.Json `json:"data"`
  76. }