datasources.go 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. package api
  2. import (
  3. "github.com/grafana/grafana/pkg/api/dtos"
  4. "github.com/grafana/grafana/pkg/bus"
  5. "github.com/grafana/grafana/pkg/middleware"
  6. m "github.com/grafana/grafana/pkg/models"
  7. )
  8. func GetDataSources(c *middleware.Context) {
  9. query := m.GetDataSourcesQuery{OrgId: c.OrgId}
  10. if err := bus.Dispatch(&query); err != nil {
  11. c.JsonApiErr(500, "Failed to query datasources", err)
  12. return
  13. }
  14. result := make([]*dtos.DataSource, len(query.Result))
  15. for i, ds := range query.Result {
  16. result[i] = &dtos.DataSource{
  17. Id: ds.Id,
  18. OrgId: ds.OrgId,
  19. Name: ds.Name,
  20. Url: ds.Url,
  21. Type: ds.Type,
  22. Access: ds.Access,
  23. Password: ds.Password,
  24. Database: ds.Database,
  25. User: ds.User,
  26. BasicAuth: ds.BasicAuth,
  27. IsDefault: ds.IsDefault,
  28. }
  29. }
  30. c.JSON(200, result)
  31. }
  32. func GetDataSourceById(c *middleware.Context) {
  33. query := m.GetDataSourceByIdQuery{
  34. Id: c.ParamsInt64(":id"),
  35. OrgId: c.OrgId,
  36. }
  37. if err := bus.Dispatch(&query); err != nil {
  38. c.JsonApiErr(500, "Failed to query datasources", err)
  39. return
  40. }
  41. ds := query.Result
  42. c.JSON(200, &dtos.DataSource{
  43. Id: ds.Id,
  44. OrgId: ds.OrgId,
  45. Name: ds.Name,
  46. Url: ds.Url,
  47. Type: ds.Type,
  48. Access: ds.Access,
  49. Password: ds.Password,
  50. Database: ds.Database,
  51. User: ds.User,
  52. BasicAuth: ds.BasicAuth,
  53. IsDefault: ds.IsDefault,
  54. })
  55. }
  56. func DeleteDataSource(c *middleware.Context) {
  57. id := c.ParamsInt64(":id")
  58. if id <= 0 {
  59. c.JsonApiErr(400, "Missing valid datasource id", nil)
  60. return
  61. }
  62. cmd := &m.DeleteDataSourceCommand{Id: id, OrgId: c.OrgId}
  63. err := bus.Dispatch(cmd)
  64. if err != nil {
  65. c.JsonApiErr(500, "Failed to delete datasource", err)
  66. return
  67. }
  68. c.JsonOK("Data source deleted")
  69. }
  70. func AddDataSource(c *middleware.Context) {
  71. cmd := m.AddDataSourceCommand{}
  72. if !c.JsonBody(&cmd) {
  73. c.JsonApiErr(400, "Validation failed", nil)
  74. return
  75. }
  76. cmd.OrgId = c.OrgId
  77. if err := bus.Dispatch(&cmd); err != nil {
  78. c.JsonApiErr(500, "Failed to add datasource", err)
  79. return
  80. }
  81. c.JsonOK("Datasource added")
  82. }
  83. func UpdateDataSource(c *middleware.Context) {
  84. cmd := m.UpdateDataSourceCommand{}
  85. if !c.JsonBody(&cmd) {
  86. c.JsonApiErr(400, "Validation failed", nil)
  87. return
  88. }
  89. cmd.OrgId = c.OrgId
  90. err := bus.Dispatch(&cmd)
  91. if err != nil {
  92. c.JsonApiErr(500, "Failed to update datasource", err)
  93. return
  94. }
  95. c.JsonOK("Datasource updated")
  96. }