org.go 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. package api
  2. import (
  3. "github.com/grafana/grafana/pkg/bus"
  4. "github.com/grafana/grafana/pkg/metrics"
  5. "github.com/grafana/grafana/pkg/middleware"
  6. m "github.com/grafana/grafana/pkg/models"
  7. "github.com/grafana/grafana/pkg/setting"
  8. )
  9. // GET /api/org
  10. func GetOrgCurrent(c *middleware.Context) Response {
  11. return getOrgHelper(c.OrgId)
  12. }
  13. // GET /api/orgs/:orgId
  14. func GetOrgById(c *middleware.Context) Response {
  15. return getOrgHelper(c.ParamsInt64(":orgId"))
  16. }
  17. func getOrgHelper(orgId int64) Response {
  18. query := m.GetOrgByIdQuery{Id: orgId}
  19. if err := bus.Dispatch(&query); err != nil {
  20. if err == m.ErrOrgNotFound {
  21. return ApiError(404, "Organization not found", err)
  22. }
  23. return ApiError(500, "Failed to get organization", err)
  24. }
  25. org := m.OrgDTO{
  26. Id: query.Result.Id,
  27. Name: query.Result.Name,
  28. }
  29. return Json(200, &org)
  30. }
  31. // POST /api/orgs
  32. func CreateOrg(c *middleware.Context, cmd m.CreateOrgCommand) Response {
  33. if !setting.AllowUserOrgCreate && !c.IsGrafanaAdmin {
  34. return ApiError(401, "Access denied", nil)
  35. }
  36. cmd.UserId = c.UserId
  37. if err := bus.Dispatch(&cmd); err != nil {
  38. return ApiError(500, "Failed to create organization", err)
  39. }
  40. metrics.M_Api_Org_Create.Inc(1)
  41. return ApiSuccess("Organization created")
  42. }
  43. // PUT /api/org
  44. func UpdateOrgCurrent(c *middleware.Context, cmd m.UpdateOrgCommand) Response {
  45. cmd.OrgId = c.OrgId
  46. return updateOrgHelper(cmd)
  47. }
  48. // PUT /api/orgs/:orgId
  49. func UpdateOrg(c *middleware.Context, cmd m.UpdateOrgCommand) Response {
  50. cmd.OrgId = c.ParamsInt64(":orgId")
  51. return updateOrgHelper(cmd)
  52. }
  53. func updateOrgHelper(cmd m.UpdateOrgCommand) Response {
  54. if err := bus.Dispatch(&cmd); err != nil {
  55. return ApiError(500, "Failed to update organization", err)
  56. }
  57. return ApiSuccess("Organization updated")
  58. }
  59. func SearchOrgs(c *middleware.Context) Response {
  60. query := m.SearchOrgsQuery{
  61. Query: c.Query("query"),
  62. Name: c.Query("name"),
  63. Page: 0,
  64. Limit: 1000,
  65. }
  66. if err := bus.Dispatch(&query); err != nil {
  67. return ApiError(500, "Failed to search orgs", err)
  68. }
  69. return Json(200, query.Result)
  70. }