Browse Source

get apiPlugins working again.

Anthony Woods 10 years ago
parent
commit
c4a0ec844c
2 changed files with 40 additions and 0 deletions
  1. 31 0
      pkg/plugins/api_plugin.go
  2. 9 0
      pkg/plugins/models.go

+ 31 - 0
pkg/plugins/api_plugin.go

@@ -0,0 +1,31 @@
+package plugins
+
+import (
+	"encoding/json"
+	"strings"
+
+	"github.com/grafana/grafana/pkg/models"
+)
+
+type ApiPluginRoute struct {
+	Path            string          `json:"path"`
+	Method          string          `json:"method"`
+	ReqSignedIn     bool            `json:"reqSignedIn"`
+	ReqGrafanaAdmin bool            `json:"reqGrafanaAdmin"`
+	ReqRole         models.RoleType `json:"reqRole"`
+	Url             string          `json:"url"`
+}
+
+type ApiPlugin struct {
+	PluginBase
+	Routes []*ApiPluginRoute `json:"routes"`
+}
+
+func (app *ApiPlugin) Load(decoder *json.Decoder, pluginDir string) error {
+	if err := decoder.Decode(&app); err != nil {
+		return err
+	}
+
+	ApiPlugins[app.Id] = app
+	return nil
+}

+ 9 - 0
pkg/plugins/models.go

@@ -73,3 +73,12 @@ func NewEnabledPlugins() EnabledPlugins {
 		Apps:        make([]*AppPlugin, 0),
 	}
 }
+
+func (app *ApiPlugin) Load(decoder *json.Decoder, pluginDir string) error {
+	if err := decoder.Decode(&app); err != nil {
+		return err
+	}
+
+	ApiPlugins[app.Id] = app
+	return nil
+}