chore(dashboard version service): make method sigs more consistent (#60736)
The DashboardVersion struct is the database object; the DashboardVersionDTO is the object that should be sent to the API layer. In the future I'd like to move DashboardVersion to dashverimpl and un-export it, but there are a few places that Insert directly into that table, not all of which are test fixtures, so that should wait until we clean up at least the DashboardService's use of it.
This commit is contained in:
@@ -26,13 +26,15 @@ func ProvideService(db db.DB) dashver.Service {
|
||||
}
|
||||
}
|
||||
|
||||
func (s *Service) Get(ctx context.Context, query *dashver.GetDashboardVersionQuery) (*dashver.DashboardVersion, error) {
|
||||
func (s *Service) Get(ctx context.Context, query *dashver.GetDashboardVersionQuery) (*dashver.DashboardVersionDTO, error) {
|
||||
version, err := s.store.Get(ctx, query)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
version.Data.Set("id", version.DashboardID)
|
||||
return version, nil
|
||||
|
||||
// FIXME: the next PR will add the dashboardService so we can grab the DashboardUID
|
||||
return version.ToDTO(""), nil
|
||||
}
|
||||
|
||||
func (s *Service) DeleteExpired(ctx context.Context, cmd *dashver.DeleteExpiredVersionsCommand) error {
|
||||
@@ -70,5 +72,14 @@ func (s *Service) List(ctx context.Context, query *dashver.ListDashboardVersions
|
||||
if query.Limit == 0 {
|
||||
query.Limit = 1000
|
||||
}
|
||||
return s.store.List(ctx, query)
|
||||
dvs, err := s.store.List(ctx, query)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
dtos := make([]*dashver.DashboardVersionDTO, len(dvs))
|
||||
for i, v := range dvs {
|
||||
// FIXME: the next PR will add the dashboardService so we can grab the DashboardUID
|
||||
dtos[i] = v.ToDTO("")
|
||||
}
|
||||
return dtos, nil
|
||||
}
|
||||
|
||||
@@ -5,10 +5,11 @@ import (
|
||||
"errors"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/require"
|
||||
|
||||
"github.com/grafana/grafana/pkg/components/simplejson"
|
||||
dashver "github.com/grafana/grafana/pkg/services/dashboardversion"
|
||||
"github.com/grafana/grafana/pkg/setting"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestDashboardVersionService(t *testing.T) {
|
||||
@@ -23,7 +24,7 @@ func TestDashboardVersionService(t *testing.T) {
|
||||
dashboardVersionStore.ExpectedDashboardVersion = dashboard
|
||||
dashboardVersion, err := dashboardVersionService.Get(context.Background(), &dashver.GetDashboardVersionQuery{})
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, dashboardVersion, dashboard)
|
||||
require.Equal(t, dashboard.ToDTO(""), dashboardVersion)
|
||||
})
|
||||
}
|
||||
|
||||
@@ -59,7 +60,7 @@ func TestListDashboardVersions(t *testing.T) {
|
||||
|
||||
t.Run("Get all versions for a given Dashboard ID", func(t *testing.T) {
|
||||
query := dashver.ListDashboardVersionsQuery{}
|
||||
dashboardVersionStore.ExpectedListVersions = []*dashver.DashboardVersionDTO{{}}
|
||||
dashboardVersionStore.ExpectedListVersions = []*dashver.DashboardVersion{{}}
|
||||
res, err := dashboardVersionService.List(context.Background(), &query)
|
||||
require.Nil(t, err)
|
||||
require.Equal(t, 1, len(res))
|
||||
@@ -70,7 +71,7 @@ type FakeDashboardVersionStore struct {
|
||||
ExpectedDashboardVersion *dashver.DashboardVersion
|
||||
ExptectedDeletedVersions int64
|
||||
ExpectedVersions []interface{}
|
||||
ExpectedListVersions []*dashver.DashboardVersionDTO
|
||||
ExpectedListVersions []*dashver.DashboardVersion
|
||||
ExpectedError error
|
||||
}
|
||||
|
||||
@@ -90,6 +91,6 @@ func (f *FakeDashboardVersionStore) DeleteBatch(ctx context.Context, cmd *dashve
|
||||
return f.ExptectedDeletedVersions, f.ExpectedError
|
||||
}
|
||||
|
||||
func (f *FakeDashboardVersionStore) List(ctx context.Context, query *dashver.ListDashboardVersionsQuery) ([]*dashver.DashboardVersionDTO, error) {
|
||||
func (f *FakeDashboardVersionStore) List(ctx context.Context, query *dashver.ListDashboardVersionsQuery) ([]*dashver.DashboardVersion, error) {
|
||||
return f.ExpectedListVersions, f.ExpectedError
|
||||
}
|
||||
|
||||
@@ -59,16 +59,15 @@ func (ss *sqlxStore) DeleteBatch(ctx context.Context, cmd *dashver.DeleteExpired
|
||||
return deleted, err
|
||||
}
|
||||
|
||||
func (ss *sqlxStore) List(ctx context.Context, query *dashver.ListDashboardVersionsQuery) ([]*dashver.DashboardVersionDTO, error) {
|
||||
var dashboardVersion []*dashver.DashboardVersionDTO
|
||||
func (ss *sqlxStore) List(ctx context.Context, query *dashver.ListDashboardVersionsQuery) ([]*dashver.DashboardVersion, error) {
|
||||
var dashboardVersion []*dashver.DashboardVersion
|
||||
qr := `SELECT dashboard_version.id,
|
||||
dashboard_version.dashboard_id,
|
||||
dashboard_version.parent_version,
|
||||
dashboard_version.restored_from,
|
||||
dashboard_version.version,
|
||||
dashboard_version.created,
|
||||
dashboard_version.message,
|
||||
"user".login as created_by_login
|
||||
dashboard_version.message
|
||||
FROM dashboard_version
|
||||
LEFT JOIN "user" ON "user".id = dashboard_version.created_by
|
||||
LEFT JOIN dashboard ON dashboard.id = dashboard_version.dashboard_id
|
||||
|
||||
@@ -10,5 +10,5 @@ type store interface {
|
||||
Get(context.Context, *dashver.GetDashboardVersionQuery) (*dashver.DashboardVersion, error)
|
||||
GetBatch(context.Context, *dashver.DeleteExpiredVersionsCommand, int, int) ([]interface{}, error)
|
||||
DeleteBatch(context.Context, *dashver.DeleteExpiredVersionsCommand, []interface{}) (int64, error)
|
||||
List(context.Context, *dashver.ListDashboardVersionsQuery) ([]*dashver.DashboardVersionDTO, error)
|
||||
List(context.Context, *dashver.ListDashboardVersionsQuery) ([]*dashver.DashboardVersion, error)
|
||||
}
|
||||
|
||||
@@ -71,8 +71,8 @@ func (ss *sqlStore) DeleteBatch(ctx context.Context, cmd *dashver.DeleteExpiredV
|
||||
return deleted, err
|
||||
}
|
||||
|
||||
func (ss *sqlStore) List(ctx context.Context, query *dashver.ListDashboardVersionsQuery) ([]*dashver.DashboardVersionDTO, error) {
|
||||
var dashboardVersion []*dashver.DashboardVersionDTO
|
||||
func (ss *sqlStore) List(ctx context.Context, query *dashver.ListDashboardVersionsQuery) ([]*dashver.DashboardVersion, error) {
|
||||
var dashboardVersion []*dashver.DashboardVersion
|
||||
err := ss.db.WithDbSession(ctx, func(sess *db.Session) error {
|
||||
err := sess.Table("dashboard_version").
|
||||
Select(`dashboard_version.id,
|
||||
|
||||
Reference in New Issue
Block a user