app_settings.go 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  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. "github.com/grafana/grafana/pkg/plugins"
  8. )
  9. func GetOrgAppsList(c *middleware.Context) Response {
  10. orgApps, err := plugins.GetOrgAppSettings(c.OrgId)
  11. if err != nil {
  12. return ApiError(500, "Failed to list of apps", err)
  13. }
  14. result := make([]*dtos.AppSettings, 0)
  15. for _, app := range plugins.Apps {
  16. orgApp := orgApps[app.Id]
  17. result = append(result, dtos.NewAppSettingsDto(app, orgApp))
  18. }
  19. return Json(200, result)
  20. }
  21. func GetAppSettingsById(c *middleware.Context) Response {
  22. appId := c.Params(":appId")
  23. if pluginDef, exists := plugins.Apps[appId]; !exists {
  24. return ApiError(404, "PluginId not found, no installed plugin with that id", nil)
  25. } else {
  26. orgApps, err := plugins.GetOrgAppSettings(c.OrgId)
  27. if err != nil {
  28. return ApiError(500, "Failed to get org app settings ", nil)
  29. }
  30. orgApp := orgApps[appId]
  31. return Json(200, dtos.NewAppSettingsDto(pluginDef, orgApp))
  32. }
  33. }
  34. func UpdateAppSettings(c *middleware.Context, cmd m.UpdateAppSettingsCmd) Response {
  35. appId := c.Params(":appId")
  36. cmd.OrgId = c.OrgId
  37. cmd.AppId = appId
  38. if _, ok := plugins.Apps[cmd.AppId]; !ok {
  39. return ApiError(404, "App type not installed.", nil)
  40. }
  41. err := bus.Dispatch(&cmd)
  42. if err != nil {
  43. return ApiError(500, "Failed to update App Plugin", err)
  44. }
  45. return ApiSuccess("App updated")
  46. }