Bladeren bron

add get org by name api

Shaofeng Chen 10 jaren geleden
bovenliggende
commit
dc427d5a2c
2 gewijzigde bestanden met toevoegingen van 32 en 0 verwijderingen
  1. 5 0
      pkg/api/api.go
  2. 27 0
      pkg/api/org.go

+ 5 - 0
pkg/api/api.go

@@ -147,6 +147,11 @@ func Register(r *macaron.Macaron) {
 			r.Put("/quotas/:target", bind(m.UpdateOrgQuotaCmd{}), wrap(UpdateOrgQuota))
 		}, reqGrafanaAdmin)
 
+		// orgs (admin routes)
+		r.Group("/orgs/name/:name", func() {
+			r.Get("/", wrap(GetOrgByName))
+		}, reqGrafanaAdmin)
+
 		// auth api keys
 		r.Group("/auth/keys", func() {
 			r.Get("/", wrap(GetApiKeys))

+ 27 - 0
pkg/api/org.go

@@ -20,6 +20,33 @@ func GetOrgById(c *middleware.Context) Response {
 	return getOrgHelper(c.ParamsInt64(":orgId"))
 }
 
+// Get /api/orgs/:name
+func GetOrgByName(c *middleware.Context) Response {
+	query := m.GetOrgByNameQuery{Name: c.Params(":name")}
+	if err := bus.Dispatch(&query); err != nil {
+		if err == m.ErrOrgNotFound {
+			return ApiError(404, "Organization not found", err)
+		}
+
+		return ApiError(500, "Failed to get organization", err)
+	}
+	org := query.Result
+	result := m.OrgDetailsDTO{
+		Id:   org.Id,
+		Name: org.Name,
+		Address: m.Address{
+			Address1: org.Address1,
+			Address2: org.Address2,
+			City:     org.City,
+			ZipCode:  org.ZipCode,
+			State:    org.State,
+			Country:  org.Country,
+		},
+	}
+
+	return Json(200, &result)
+}
+
 func getOrgHelper(orgId int64) Response {
 	query := m.GetOrgByIdQuery{Id: orgId}