Explorar o código

move toMap function to be a method on the quota structs

woodsaj %!s(int64=10) %!d(string=hai) anos
pai
achega
86ed85aa6e
Modificáronse 3 ficheiros con 38 adicións e 26 borrados
  1. 0 24
      pkg/models/quotas.go
  2. 2 2
      pkg/services/sqlstore/quota.go
  3. 36 0
      pkg/setting/setting_quota.go

+ 0 - 24
pkg/models/quotas.go

@@ -3,7 +3,6 @@ package models
 import (
 	"errors"
 	"github.com/grafana/grafana/pkg/setting"
-	"reflect"
 	"time"
 )
 
@@ -129,26 +128,3 @@ func GetQuotaScopes(target string) ([]QuotaScope, error) {
 		return scopes, ErrInvalidQuotaTarget
 	}
 }
-
-func QuotaToMap(q interface{}) map[string]int64 {
-	qMap := make(map[string]int64)
-	typ := reflect.TypeOf(q)
-	val := reflect.ValueOf(q)
-	if typ.Kind() == reflect.Ptr {
-		typ = typ.Elem()
-		val = val.Elem()
-	}
-	for i := 0; i < typ.NumField(); i++ {
-		field := typ.Field(i)
-		name := field.Tag.Get("target")
-		if name == "" {
-			name = field.Name
-		}
-		if name == "-" {
-			continue
-		}
-		value := val.Field(i)
-		qMap[name] = value.Int()
-	}
-	return qMap
-}

+ 2 - 2
pkg/services/sqlstore/quota.go

@@ -57,7 +57,7 @@ func GetOrgQuotas(query *m.GetOrgQuotasQuery) error {
 		return err
 	}
 
-	defaultQuotas := m.QuotaToMap(setting.Quota.Org)
+	defaultQuotas := setting.Quota.Org.ToMap()
 
 	seenTargets := make(map[string]bool)
 	for _, q := range quotas {
@@ -157,7 +157,7 @@ func GetUserQuotas(query *m.GetUserQuotasQuery) error {
 		return err
 	}
 
-	defaultQuotas := m.QuotaToMap(setting.Quota.User)
+	defaultQuotas := setting.Quota.User.ToMap()
 
 	seenTargets := make(map[string]bool)
 	for _, q := range quotas {

+ 36 - 0
pkg/setting/setting_quota.go

@@ -1,5 +1,9 @@
 package setting
 
+import (
+	"reflect"
+)
+
 type OrgQuota struct {
 	User       int64 `target:"org_user"`
 	DataSource int64 `target:"data_source"`
@@ -20,6 +24,38 @@ type GlobalQuota struct {
 	Session    int64 `target:"-"`
 }
 
+func (q *OrgQuota) ToMap() map[string]int64 {
+	return quotaToMap(*q)
+}
+
+func (q *UserQuota) ToMap() map[string]int64 {
+	return quotaToMap(*q)
+}
+
+func (q *GlobalQuota) ToMap() map[string]int64 {
+	return quotaToMap(*q)
+}
+
+func quotaToMap(q interface{}) map[string]int64 {
+	qMap := make(map[string]int64)
+	typ := reflect.TypeOf(q)
+	val := reflect.ValueOf(q)
+
+	for i := 0; i < typ.NumField(); i++ {
+		field := typ.Field(i)
+		name := field.Tag.Get("target")
+		if name == "" {
+			name = field.Name
+		}
+		if name == "-" {
+			continue
+		}
+		value := val.Field(i)
+		qMap[name] = value.Int()
+	}
+	return qMap
+}
+
 type QuotaSettings struct {
 	Enabled bool
 	Org     *OrgQuota