mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
* Split Delete expired dashboard version store * Add method to fakes * Fix lint * Fix lint 2 * Use split store method in cleanup * Add tests * Remove DeleteExpiredVersions from sqlstore * Fix lint * Fix integration tests
43 lines
1.3 KiB
Go
43 lines
1.3 KiB
Go
package sqlstore
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/grafana/grafana/pkg/models"
|
|
)
|
|
|
|
// GetDashboardVersions gets all dashboard versions for the given dashboard ID.
|
|
func (ss *SQLStore) GetDashboardVersions(ctx context.Context, query *models.GetDashboardVersionsQuery) error {
|
|
return ss.WithDbSession(ctx, func(sess *DBSession) error {
|
|
if query.Limit == 0 {
|
|
query.Limit = 1000
|
|
}
|
|
|
|
err := sess.Table("dashboard_version").
|
|
Select(`dashboard_version.id,
|
|
dashboard_version.dashboard_id,
|
|
dashboard_version.parent_version,
|
|
dashboard_version.restored_from,
|
|
dashboard_version.version,
|
|
dashboard_version.created,
|
|
dashboard_version.created_by as created_by_id,
|
|
dashboard_version.message,
|
|
dashboard_version.data,`+
|
|
dialect.Quote("user")+`.login as created_by`).
|
|
Join("LEFT", dialect.Quote("user"), `dashboard_version.created_by = `+dialect.Quote("user")+`.id`).
|
|
Join("LEFT", "dashboard", `dashboard.id = dashboard_version.dashboard_id`).
|
|
Where("dashboard_version.dashboard_id=? AND dashboard.org_id=?", query.DashboardId, query.OrgId).
|
|
OrderBy("dashboard_version.version DESC").
|
|
Limit(query.Limit, query.Start).
|
|
Find(&query.Result)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
if len(query.Result) < 1 {
|
|
return models.ErrNoVersionsForDashboardId
|
|
}
|
|
return nil
|
|
})
|
|
}
|