Added getDashboardSlugById api

This commit is contained in:
utkarshcmu 2016-03-17 01:01:58 -07:00
parent 9dd6aefcec
commit 66621d762e
5 changed files with 39 additions and 0 deletions

View File

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

View File

@ -204,3 +204,17 @@ func GetDashboardTags(c *middleware.Context) {
c.JSON(200, query.Result) 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)
}

View File

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

View File

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

View File

@ -18,6 +18,7 @@ func init() {
bus.AddHandler("sql", DeleteDashboard) bus.AddHandler("sql", DeleteDashboard)
bus.AddHandler("sql", SearchDashboards) bus.AddHandler("sql", SearchDashboards)
bus.AddHandler("sql", GetDashboardTags) bus.AddHandler("sql", GetDashboardTags)
bus.AddHandler("sql", GetDashboardSlugById)
} }
func SaveDashboard(cmd *m.SaveDashboardCommand) error { func SaveDashboard(cmd *m.SaveDashboardCommand) error {
@ -255,3 +256,17 @@ func GetDashboards(query *m.GetDashboardsQuery) error {
return nil 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
}