Selaa lähdekoodia

Added getDashboardSlugById api

utkarshcmu 9 vuotta sitten
vanhempi
commit
66621d762e
5 muutettua tiedostoa jossa 39 lisäystä ja 0 poistoa
  1. 1 0
      pkg/api/api.go
  2. 14 0
      pkg/api/dashboard.go
  3. 4 0
      pkg/api/dtos/models.go
  4. 5 0
      pkg/models/dashboards.go
  5. 15 0
      pkg/services/sqlstore/dashboard.go

+ 1 - 0
pkg/api/api.go

@@ -200,6 +200,7 @@ func Register(r *macaron.Macaron) {
 			r.Get("/home", GetHomeDashboard)
 			r.Get("/tags", GetDashboardTags)
 			r.Post("/import", bind(dtos.ImportDashboardCommand{}), wrap(ImportDashboard))
+			r.Get("/id/:id", GetDashboardSlugById)
 		})
 
 		// Dashboard snapshots

+ 14 - 0
pkg/api/dashboard.go

@@ -204,3 +204,17 @@ func GetDashboardTags(c *middleware.Context) {
 
 	c.JSON(200, query.Result)
 }
+
+func GetDashboardSlugById(c *middleware.Context) {
+	dashId := c.ParamsInt64(":id")
+	query := m.GetDashboardSlugByIdQuery{Id: dashId}
+	err := bus.Dispatch(&query)
+	if err != nil {
+		c.JsonApiErr(500, "Failed to get slug from database", err)
+		return
+	}
+
+	slug := dtos.DashboardSlug{Slug: query.Result}
+
+	c.JSON(200, &slug)
+}

+ 4 - 0
pkg/api/dtos/models.go

@@ -57,6 +57,10 @@ type DashboardFullWithMeta struct {
 	Dashboard *simplejson.Json `json:"dashboard"`
 }
 
+type DashboardSlug struct {
+	Slug string `json:"slug"`
+}
+
 type DataSource struct {
 	Id                int64            `json:"id"`
 	OrgId             int64            `json:"orgId"`

+ 5 - 0
pkg/models/dashboards.go

@@ -148,3 +148,8 @@ type GetDashboardsQuery struct {
 	DashboardIds []int64
 	Result       *[]Dashboard
 }
+
+type GetDashboardSlugByIdQuery struct {
+	Id     int64
+	Result string
+}

+ 15 - 0
pkg/services/sqlstore/dashboard.go

@@ -18,6 +18,7 @@ func init() {
 	bus.AddHandler("sql", DeleteDashboard)
 	bus.AddHandler("sql", SearchDashboards)
 	bus.AddHandler("sql", GetDashboardTags)
+	bus.AddHandler("sql", GetDashboardSlugById)
 }
 
 func SaveDashboard(cmd *m.SaveDashboardCommand) error {
@@ -255,3 +256,17 @@ func GetDashboards(query *m.GetDashboardsQuery) error {
 
 	return nil
 }
+
+func GetDashboardSlugById(query *m.GetDashboardSlugByIdQuery) error {
+	dashboard := m.Dashboard{Id: query.Id}
+	has, err := x.Get(&dashboard)
+	query.Result = dashboard.Slug
+
+	if err != nil {
+		return err
+	} else if has == false {
+		return m.ErrDashboardNotFound
+	}
+
+	return nil
+}