mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
PublicDashboards: service and store methods rename (#57463)
This commit is contained in:
committed by
GitHub
parent
de46c1b002
commit
1f3d34ecda
@@ -104,7 +104,7 @@ func (hs *HTTPServer) GetDashboard(c *models.ReqContext) response.Response {
|
||||
err error
|
||||
)
|
||||
if hs.Features.IsEnabled(featuremgmt.FlagPublicDashboards) {
|
||||
hasPublicDashboard, err = hs.PublicDashboardsApi.PublicDashboardService.PublicDashboardEnabled(c.Req.Context(), dash.Uid)
|
||||
hasPublicDashboard, err = hs.PublicDashboardsApi.PublicDashboardService.PublicDashboardIsEnabled(c.Req.Context(), dash.Uid)
|
||||
if err != nil {
|
||||
return response.Error(500, "Error while retrieving public dashboards", err)
|
||||
}
|
||||
|
||||
@@ -256,9 +256,9 @@ func TestIntegrationDashboardDataAccess(t *testing.T) {
|
||||
AccessToken: "an-access-token",
|
||||
},
|
||||
}
|
||||
err := publicDashboardStore.SavePublicDashboardConfig(context.Background(), cmd)
|
||||
err := publicDashboardStore.SavePublicDashboard(context.Background(), cmd)
|
||||
require.NoError(t, err)
|
||||
pubdashConfig, _, _ := publicDashboardStore.GetPublicDashboard(context.Background(), "an-access-token")
|
||||
pubdashConfig, _, _ := publicDashboardStore.GetPublicDashboardAndDashboard(context.Background(), "an-access-token")
|
||||
require.NotNil(t, pubdashConfig)
|
||||
|
||||
deleteCmd := &models.DeleteDashboardCommand{Id: savedDash.Id, OrgId: savedDash.OrgId}
|
||||
@@ -270,7 +270,7 @@ func TestIntegrationDashboardDataAccess(t *testing.T) {
|
||||
require.Equal(t, getErr, dashboards.ErrDashboardNotFound)
|
||||
assert.Nil(t, dash)
|
||||
|
||||
pubdashConfig, _, err = publicDashboardStore.GetPublicDashboard(context.Background(), "an-access-token")
|
||||
pubdashConfig, _, err = publicDashboardStore.GetPublicDashboardAndDashboard(context.Background(), "an-access-token")
|
||||
require.Equal(t, err, publicDashboardModels.ErrPublicDashboardNotFound)
|
||||
require.Nil(t, pubdashConfig)
|
||||
})
|
||||
@@ -291,9 +291,9 @@ func TestIntegrationDashboardDataAccess(t *testing.T) {
|
||||
AccessToken: "an-access-token",
|
||||
},
|
||||
}
|
||||
err := publicDashboardStore.SavePublicDashboardConfig(context.Background(), cmd)
|
||||
err := publicDashboardStore.SavePublicDashboard(context.Background(), cmd)
|
||||
require.NoError(t, err)
|
||||
pubdashConfig, _, _ := publicDashboardStore.GetPublicDashboard(context.Background(), "an-access-token")
|
||||
pubdashConfig, _, _ := publicDashboardStore.GetPublicDashboardAndDashboard(context.Background(), "an-access-token")
|
||||
require.NotNil(t, pubdashConfig)
|
||||
|
||||
deleteCmd := &models.DeleteDashboardCommand{Id: savedFolder.Id, ForceDeleteFolderRules: true}
|
||||
@@ -307,7 +307,7 @@ func TestIntegrationDashboardDataAccess(t *testing.T) {
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, len(query.Result), 0)
|
||||
|
||||
pubdashConfig, _, err = publicDashboardStore.GetPublicDashboard(context.Background(), "an-access-token")
|
||||
pubdashConfig, _, err = publicDashboardStore.GetPublicDashboardAndDashboard(context.Background(), "an-access-token")
|
||||
require.Equal(t, err, publicDashboardModels.ErrPublicDashboardNotFound)
|
||||
require.Nil(t, pubdashConfig)
|
||||
})
|
||||
|
||||
@@ -89,11 +89,10 @@ func (api *Api) GetPublicDashboard(c *models.ReqContext) response.Response {
|
||||
return response.Error(http.StatusBadRequest, "Invalid Access Token", nil)
|
||||
}
|
||||
|
||||
pubdash, dash, err := api.PublicDashboardService.GetPublicDashboard(
|
||||
pubdash, dash, err := api.PublicDashboardService.GetPublicDashboardAndDashboard(
|
||||
c.Req.Context(),
|
||||
accessToken,
|
||||
)
|
||||
|
||||
if err != nil {
|
||||
return api.handleError(c.Req.Context(), http.StatusInternalServerError, "GetPublicDashboard: failed to get public dashboard", err)
|
||||
}
|
||||
@@ -133,7 +132,7 @@ func (api *Api) ListPublicDashboards(c *models.ReqContext) response.Response {
|
||||
// GetPublicDashboardConfig Gets public dashboard configuration for dashboard
|
||||
// GET /api/dashboards/uid/:uid/public-config
|
||||
func (api *Api) GetPublicDashboardConfig(c *models.ReqContext) response.Response {
|
||||
pdc, err := api.PublicDashboardService.GetPublicDashboardConfig(c.Req.Context(), c.OrgID, web.Params(c.Req)[":uid"])
|
||||
pdc, err := api.PublicDashboardService.GetPublicDashboard(c.Req.Context(), c.OrgID, web.Params(c.Req)[":uid"])
|
||||
if err != nil {
|
||||
return api.handleError(c.Req.Context(), http.StatusInternalServerError, "GetPublicDashboardConfig: failed to get public dashboard config", err)
|
||||
}
|
||||
@@ -164,7 +163,7 @@ func (api *Api) SavePublicDashboardConfig(c *models.ReqContext) response.Respons
|
||||
}
|
||||
|
||||
// Save the public dashboard
|
||||
pubdash, err := api.PublicDashboardService.SavePublicDashboardConfig(c.Req.Context(), c.SignedInUser, &dto)
|
||||
pubdash, err := api.PublicDashboardService.SavePublicDashboard(c.Req.Context(), c.SignedInUser, &dto)
|
||||
if err != nil {
|
||||
return api.handleError(c.Req.Context(), http.StatusInternalServerError, "SavePublicDashboardConfig: failed to save public dashboard configuration", err)
|
||||
}
|
||||
|
||||
@@ -282,7 +282,7 @@ func TestAPIGetPublicDashboard(t *testing.T) {
|
||||
for _, test := range testCases {
|
||||
t.Run(test.Name, func(t *testing.T) {
|
||||
service := publicdashboards.NewFakePublicDashboardService(t)
|
||||
service.On("GetPublicDashboard", mock.Anything, mock.AnythingOfType("string")).
|
||||
service.On("GetPublicDashboardAndDashboard", mock.Anything, mock.AnythingOfType("string")).
|
||||
Return(&PublicDashboard{}, test.DashboardResult, test.Err).Maybe()
|
||||
|
||||
cfg := setting.NewCfg()
|
||||
@@ -396,7 +396,7 @@ func TestAPIGetPublicDashboardConfig(t *testing.T) {
|
||||
service := publicdashboards.NewFakePublicDashboardService(t)
|
||||
|
||||
if test.ShouldCallService {
|
||||
service.On("GetPublicDashboardConfig", mock.Anything, mock.AnythingOfType("int64"), mock.AnythingOfType("string")).
|
||||
service.On("GetPublicDashboard", mock.Anything, mock.AnythingOfType("int64"), mock.AnythingOfType("string")).
|
||||
Return(test.PublicDashboardResult, test.PublicDashboardErr)
|
||||
}
|
||||
|
||||
@@ -507,7 +507,7 @@ func TestApiSavePublicDashboardConfig(t *testing.T) {
|
||||
|
||||
// this is to avoid AssertExpectations fail at t.Cleanup when the middleware returns before calling the service
|
||||
if test.ShouldCallService {
|
||||
service.On("SavePublicDashboardConfig", mock.Anything, mock.Anything, mock.AnythingOfType("*models.SavePublicDashboardConfigDTO")).
|
||||
service.On("SavePublicDashboard", mock.Anything, mock.Anything, mock.AnythingOfType("*models.SavePublicDashboardConfigDTO")).
|
||||
Return(&PublicDashboard{IsEnabled: true}, test.SaveDashboardErr)
|
||||
}
|
||||
|
||||
@@ -732,7 +732,7 @@ func TestIntegrationUnauthenticatedUserCanGetPubdashPanelQueryData(t *testing.T)
|
||||
ac := acmock.New()
|
||||
cfg.RBACEnabled = false
|
||||
service := publicdashboardsService.ProvideService(cfg, store, qds, annotationsService, ac)
|
||||
pubdash, err := service.SavePublicDashboardConfig(context.Background(), &user.SignedInUser{}, savePubDashboardCmd)
|
||||
pubdash, err := service.SavePublicDashboard(context.Background(), &user.SignedInUser{}, savePubDashboardCmd)
|
||||
require.NoError(t, err)
|
||||
|
||||
// setup test server
|
||||
|
||||
@@ -73,9 +73,9 @@ func (d *PublicDashboardStoreImpl) GetDashboard(ctx context.Context, dashboardUi
|
||||
return dashboard, err
|
||||
}
|
||||
|
||||
// Retrieves public dashboard. This method makes 2 queries to the db so that in the
|
||||
// GetPublicDashboardAndDashboard Retrieves public dashboard. This method makes 2 queries to the db so that in the
|
||||
// even that the underlying dashboard is missing it will return a 404.
|
||||
func (d *PublicDashboardStoreImpl) GetPublicDashboard(ctx context.Context, accessToken string) (*PublicDashboard, *models.Dashboard, error) {
|
||||
func (d *PublicDashboardStoreImpl) GetPublicDashboardAndDashboard(ctx context.Context, accessToken string) (*PublicDashboard, *models.Dashboard, error) {
|
||||
if accessToken == "" {
|
||||
return nil, nil, ErrPublicDashboardIdentifierNotSet
|
||||
}
|
||||
@@ -192,7 +192,7 @@ func (d *PublicDashboardStoreImpl) GetPublicDashboardByUid(ctx context.Context,
|
||||
}
|
||||
|
||||
// Retrieves public dashboard configuration
|
||||
func (d *PublicDashboardStoreImpl) GetPublicDashboardConfig(ctx context.Context, orgId int64, dashboardUid string) (*PublicDashboard, error) {
|
||||
func (d *PublicDashboardStoreImpl) GetPublicDashboard(ctx context.Context, orgId int64, dashboardUid string) (*PublicDashboard, error) {
|
||||
if dashboardUid == "" {
|
||||
return nil, dashboards.ErrDashboardIdentifierNotSet
|
||||
}
|
||||
@@ -216,7 +216,7 @@ func (d *PublicDashboardStoreImpl) GetPublicDashboardConfig(ctx context.Context,
|
||||
}
|
||||
|
||||
// Persists public dashboard configuration
|
||||
func (d *PublicDashboardStoreImpl) SavePublicDashboardConfig(ctx context.Context, cmd SavePublicDashboardConfigCommand) error {
|
||||
func (d *PublicDashboardStoreImpl) SavePublicDashboard(ctx context.Context, cmd SavePublicDashboardConfigCommand) error {
|
||||
if cmd.PublicDashboard.DashboardUid == "" {
|
||||
return dashboards.ErrDashboardIdentifierNotSet
|
||||
}
|
||||
@@ -234,7 +234,7 @@ func (d *PublicDashboardStoreImpl) SavePublicDashboardConfig(ctx context.Context
|
||||
}
|
||||
|
||||
// Updates existing public dashboard configuration
|
||||
func (d *PublicDashboardStoreImpl) UpdatePublicDashboardConfig(ctx context.Context, cmd SavePublicDashboardConfigCommand) error {
|
||||
func (d *PublicDashboardStoreImpl) UpdatePublicDashboard(ctx context.Context, cmd SavePublicDashboardConfigCommand) error {
|
||||
err := d.sqlStore.WithTransactionalDbSession(ctx, func(sess *db.Session) error {
|
||||
timeSettingsJSON, err := json.Marshal(cmd.PublicDashboard.TimeSettings)
|
||||
if err != nil {
|
||||
|
||||
@@ -104,7 +104,7 @@ func TestIntegrationEnabledPublicDashboardExistsByAccessToken(t *testing.T) {
|
||||
t.Run("PublicDashboardEnabledExistsByAccessToken will return true when at least one public dashboard has a matching access token", func(t *testing.T) {
|
||||
setup()
|
||||
|
||||
err := publicdashboardStore.SavePublicDashboardConfig(context.Background(), SavePublicDashboardConfigCommand{
|
||||
err := publicdashboardStore.SavePublicDashboard(context.Background(), SavePublicDashboardConfigCommand{
|
||||
PublicDashboard: PublicDashboard{
|
||||
IsEnabled: true,
|
||||
Uid: "abc123",
|
||||
@@ -126,7 +126,7 @@ func TestIntegrationEnabledPublicDashboardExistsByAccessToken(t *testing.T) {
|
||||
t.Run("PublicDashboardEnabledExistsByAccessToken will return false when IsEnabled=false", func(t *testing.T) {
|
||||
setup()
|
||||
|
||||
err := publicdashboardStore.SavePublicDashboardConfig(context.Background(), SavePublicDashboardConfigCommand{
|
||||
err := publicdashboardStore.SavePublicDashboard(context.Background(), SavePublicDashboardConfigCommand{
|
||||
PublicDashboard: PublicDashboard{
|
||||
IsEnabled: false,
|
||||
Uid: "abc123",
|
||||
@@ -172,7 +172,7 @@ func TestIntegrationEnabledPublicDashboardExistsByDashboardUid(t *testing.T) {
|
||||
t.Run("PublicDashboardEnabledExistsByDashboardUid Will return true when dashboard has at least one enabled public dashboard", func(t *testing.T) {
|
||||
setup()
|
||||
|
||||
err := publicdashboardStore.SavePublicDashboardConfig(context.Background(), SavePublicDashboardConfigCommand{
|
||||
err := publicdashboardStore.SavePublicDashboard(context.Background(), SavePublicDashboardConfigCommand{
|
||||
PublicDashboard: PublicDashboard{
|
||||
IsEnabled: true,
|
||||
Uid: "abc123",
|
||||
@@ -194,7 +194,7 @@ func TestIntegrationEnabledPublicDashboardExistsByDashboardUid(t *testing.T) {
|
||||
t.Run("PublicDashboardEnabledExistsByDashboardUid will return false when dashboard has public dashboards but they are not enabled", func(t *testing.T) {
|
||||
setup()
|
||||
|
||||
err := publicdashboardStore.SavePublicDashboardConfig(context.Background(), SavePublicDashboardConfigCommand{
|
||||
err := publicdashboardStore.SavePublicDashboard(context.Background(), SavePublicDashboardConfigCommand{
|
||||
PublicDashboard: PublicDashboard{
|
||||
IsEnabled: false,
|
||||
Uid: "abc123",
|
||||
@@ -214,8 +214,7 @@ func TestIntegrationEnabledPublicDashboardExistsByDashboardUid(t *testing.T) {
|
||||
})
|
||||
}
|
||||
|
||||
// GetPublicDashboard
|
||||
func TestIntegrationGetPublicDashboard(t *testing.T) {
|
||||
func TestIntegrationGetPublicDashboardAndDashboard(t *testing.T) {
|
||||
var sqlStore db.DB
|
||||
var cfg *setting.Cfg
|
||||
var dashboardStore *dashboardsDB.DashboardStore
|
||||
@@ -245,10 +244,10 @@ func TestIntegrationGetPublicDashboard(t *testing.T) {
|
||||
},
|
||||
}
|
||||
|
||||
err := publicdashboardStore.SavePublicDashboardConfig(context.Background(), cmd)
|
||||
err := publicdashboardStore.SavePublicDashboard(context.Background(), cmd)
|
||||
require.NoError(t, err)
|
||||
|
||||
pd, d, err := publicdashboardStore.GetPublicDashboard(context.Background(), "NOTAREALUUID")
|
||||
pd, d, err := publicdashboardStore.GetPublicDashboardAndDashboard(context.Background(), "NOTAREALUUID")
|
||||
require.NoError(t, err)
|
||||
|
||||
assert.Equal(t, pd, &cmd.PublicDashboard)
|
||||
@@ -257,19 +256,19 @@ func TestIntegrationGetPublicDashboard(t *testing.T) {
|
||||
|
||||
t.Run("returns ErrPublicDashboardNotFound with empty uid", func(t *testing.T) {
|
||||
setup()
|
||||
_, _, err := publicdashboardStore.GetPublicDashboard(context.Background(), "")
|
||||
_, _, err := publicdashboardStore.GetPublicDashboardAndDashboard(context.Background(), "")
|
||||
require.Error(t, ErrPublicDashboardIdentifierNotSet, err)
|
||||
})
|
||||
|
||||
t.Run("returns ErrPublicDashboardNotFound when PublicDashboard not found", func(t *testing.T) {
|
||||
setup()
|
||||
_, _, err := publicdashboardStore.GetPublicDashboard(context.Background(), "zzzzzz")
|
||||
_, _, err := publicdashboardStore.GetPublicDashboardAndDashboard(context.Background(), "zzzzzz")
|
||||
require.Error(t, ErrPublicDashboardNotFound, err)
|
||||
})
|
||||
|
||||
t.Run("returns ErrDashboardNotFound when Dashboard not found", func(t *testing.T) {
|
||||
setup()
|
||||
err := publicdashboardStore.SavePublicDashboardConfig(context.Background(), SavePublicDashboardConfigCommand{
|
||||
err := publicdashboardStore.SavePublicDashboard(context.Background(), SavePublicDashboardConfigCommand{
|
||||
PublicDashboard: PublicDashboard{
|
||||
IsEnabled: true,
|
||||
Uid: "abc1234",
|
||||
@@ -280,13 +279,12 @@ func TestIntegrationGetPublicDashboard(t *testing.T) {
|
||||
},
|
||||
})
|
||||
require.NoError(t, err)
|
||||
_, _, err = publicdashboardStore.GetPublicDashboard(context.Background(), "abc1234")
|
||||
_, _, err = publicdashboardStore.GetPublicDashboardAndDashboard(context.Background(), "abc1234")
|
||||
require.Error(t, dashboards.ErrDashboardNotFound, err)
|
||||
})
|
||||
}
|
||||
|
||||
// GetPublicDashboardConfig
|
||||
func TestIntegrationGetPublicDashboardConfig(t *testing.T) {
|
||||
func TestIntegrationGetPublicDashboard(t *testing.T) {
|
||||
var sqlStore db.DB
|
||||
var cfg *setting.Cfg
|
||||
var dashboardStore *dashboardsDB.DashboardStore
|
||||
@@ -302,14 +300,14 @@ func TestIntegrationGetPublicDashboardConfig(t *testing.T) {
|
||||
|
||||
t.Run("returns isPublic and set dashboardUid and orgId", func(t *testing.T) {
|
||||
setup()
|
||||
pubdash, err := publicdashboardStore.GetPublicDashboardConfig(context.Background(), savedDashboard.OrgId, savedDashboard.Uid)
|
||||
pubdash, err := publicdashboardStore.GetPublicDashboard(context.Background(), savedDashboard.OrgId, savedDashboard.Uid)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, &PublicDashboard{IsEnabled: false, DashboardUid: savedDashboard.Uid, OrgId: savedDashboard.OrgId}, pubdash)
|
||||
})
|
||||
|
||||
t.Run("returns dashboard errDashboardIdentifierNotSet", func(t *testing.T) {
|
||||
setup()
|
||||
_, err := publicdashboardStore.GetPublicDashboardConfig(context.Background(), savedDashboard.OrgId, "")
|
||||
_, err := publicdashboardStore.GetPublicDashboard(context.Background(), savedDashboard.OrgId, "")
|
||||
require.Error(t, dashboards.ErrDashboardIdentifierNotSet, err)
|
||||
})
|
||||
|
||||
@@ -328,19 +326,18 @@ func TestIntegrationGetPublicDashboardConfig(t *testing.T) {
|
||||
}
|
||||
|
||||
// insert test public dashboard
|
||||
err := publicdashboardStore.SavePublicDashboardConfig(context.Background(), cmd)
|
||||
err := publicdashboardStore.SavePublicDashboard(context.Background(), cmd)
|
||||
require.NoError(t, err)
|
||||
|
||||
// retrieve from db
|
||||
pubdash, err := publicdashboardStore.GetPublicDashboardConfig(context.Background(), savedDashboard.OrgId, savedDashboard.Uid)
|
||||
pubdash, err := publicdashboardStore.GetPublicDashboard(context.Background(), savedDashboard.OrgId, savedDashboard.Uid)
|
||||
require.NoError(t, err)
|
||||
|
||||
assert.True(t, assert.ObjectsAreEqualValues(&cmd.PublicDashboard, pubdash))
|
||||
})
|
||||
}
|
||||
|
||||
// SavePublicDashboardConfig
|
||||
func TestIntegrationSavePublicDashboardConfig(t *testing.T) {
|
||||
func TestIntegrationSavePublicDashboard(t *testing.T) {
|
||||
var sqlStore db.DB
|
||||
var cfg *setting.Cfg
|
||||
var dashboardStore *dashboardsDB.DashboardStore
|
||||
@@ -358,7 +355,7 @@ func TestIntegrationSavePublicDashboardConfig(t *testing.T) {
|
||||
|
||||
t.Run("saves new public dashboard", func(t *testing.T) {
|
||||
setup()
|
||||
err := publicdashboardStore.SavePublicDashboardConfig(context.Background(), SavePublicDashboardConfigCommand{
|
||||
err := publicdashboardStore.SavePublicDashboard(context.Background(), SavePublicDashboardConfigCommand{
|
||||
PublicDashboard: PublicDashboard{
|
||||
IsEnabled: true,
|
||||
AnnotationsEnabled: true,
|
||||
@@ -373,21 +370,21 @@ func TestIntegrationSavePublicDashboardConfig(t *testing.T) {
|
||||
})
|
||||
require.NoError(t, err)
|
||||
|
||||
pubdash, err := publicdashboardStore.GetPublicDashboardConfig(context.Background(), savedDashboard.OrgId, savedDashboard.Uid)
|
||||
pubdash, err := publicdashboardStore.GetPublicDashboard(context.Background(), savedDashboard.OrgId, savedDashboard.Uid)
|
||||
require.NoError(t, err)
|
||||
|
||||
// verify we have a valid uid
|
||||
assert.True(t, util.IsValidShortUID(pubdash.Uid))
|
||||
|
||||
// verify we didn't update all dashboards
|
||||
pubdash2, err := publicdashboardStore.GetPublicDashboardConfig(context.Background(), savedDashboard2.OrgId, savedDashboard2.Uid)
|
||||
pubdash2, err := publicdashboardStore.GetPublicDashboard(context.Background(), savedDashboard2.OrgId, savedDashboard2.Uid)
|
||||
require.NoError(t, err)
|
||||
assert.False(t, pubdash2.IsEnabled)
|
||||
})
|
||||
|
||||
t.Run("guards from saving without dashboardUid", func(t *testing.T) {
|
||||
setup()
|
||||
err := publicdashboardStore.SavePublicDashboardConfig(context.Background(), SavePublicDashboardConfigCommand{
|
||||
err := publicdashboardStore.SavePublicDashboard(context.Background(), SavePublicDashboardConfigCommand{
|
||||
PublicDashboard: PublicDashboard{
|
||||
IsEnabled: true,
|
||||
Uid: "pubdash-uid",
|
||||
@@ -403,7 +400,6 @@ func TestIntegrationSavePublicDashboardConfig(t *testing.T) {
|
||||
})
|
||||
}
|
||||
|
||||
// UpdatePublicDashboardConfig
|
||||
func TestIntegrationUpdatePublicDashboard(t *testing.T) {
|
||||
var sqlStore db.DB
|
||||
var cfg *setting.Cfg
|
||||
@@ -424,7 +420,7 @@ func TestIntegrationUpdatePublicDashboard(t *testing.T) {
|
||||
setup()
|
||||
|
||||
pdUid := "asdf1234"
|
||||
err := publicdashboardStore.SavePublicDashboardConfig(context.Background(), SavePublicDashboardConfigCommand{
|
||||
err := publicdashboardStore.SavePublicDashboard(context.Background(), SavePublicDashboardConfigCommand{
|
||||
PublicDashboard: PublicDashboard{
|
||||
Uid: pdUid,
|
||||
DashboardUid: savedDashboard.Uid,
|
||||
@@ -440,7 +436,7 @@ func TestIntegrationUpdatePublicDashboard(t *testing.T) {
|
||||
|
||||
// inserting two different public dashboards to test update works and only affect the desired pd by uid
|
||||
anotherPdUid := "anotherUid"
|
||||
err = publicdashboardStore.SavePublicDashboardConfig(context.Background(), SavePublicDashboardConfigCommand{
|
||||
err = publicdashboardStore.SavePublicDashboard(context.Background(), SavePublicDashboardConfigCommand{
|
||||
PublicDashboard: PublicDashboard{
|
||||
Uid: anotherPdUid,
|
||||
DashboardUid: anotherSavedDashboard.Uid,
|
||||
@@ -465,13 +461,13 @@ func TestIntegrationUpdatePublicDashboard(t *testing.T) {
|
||||
UpdatedBy: 8,
|
||||
}
|
||||
// update initial record
|
||||
err = publicdashboardStore.UpdatePublicDashboardConfig(context.Background(), SavePublicDashboardConfigCommand{
|
||||
err = publicdashboardStore.UpdatePublicDashboard(context.Background(), SavePublicDashboardConfigCommand{
|
||||
PublicDashboard: updatedPublicDashboard,
|
||||
})
|
||||
require.NoError(t, err)
|
||||
|
||||
// updated dashboard should have changed
|
||||
pdRetrieved, err := publicdashboardStore.GetPublicDashboardConfig(context.Background(), savedDashboard.OrgId, savedDashboard.Uid)
|
||||
pdRetrieved, err := publicdashboardStore.GetPublicDashboard(context.Background(), savedDashboard.OrgId, savedDashboard.Uid)
|
||||
require.NoError(t, err)
|
||||
|
||||
assert.Equal(t, updatedPublicDashboard.UpdatedAt, pdRetrieved.UpdatedAt)
|
||||
@@ -481,7 +477,7 @@ func TestIntegrationUpdatePublicDashboard(t *testing.T) {
|
||||
assert.Equal(t, updatedPublicDashboard.AnnotationsEnabled, pdRetrieved.AnnotationsEnabled)
|
||||
|
||||
// not updated dashboard shouldn't have changed
|
||||
pdNotUpdatedRetrieved, err := publicdashboardStore.GetPublicDashboardConfig(context.Background(), anotherSavedDashboard.OrgId, anotherSavedDashboard.Uid)
|
||||
pdNotUpdatedRetrieved, err := publicdashboardStore.GetPublicDashboard(context.Background(), anotherSavedDashboard.OrgId, anotherSavedDashboard.Uid)
|
||||
require.NoError(t, err)
|
||||
assert.NotEqual(t, updatedPublicDashboard.UpdatedAt, pdNotUpdatedRetrieved.UpdatedAt)
|
||||
assert.NotEqual(t, updatedPublicDashboard.IsEnabled, pdNotUpdatedRetrieved.IsEnabled)
|
||||
@@ -506,7 +502,7 @@ func TestIntegrationGetPublicDashboardOrgId(t *testing.T) {
|
||||
t.Run("GetPublicDashboardOrgId will OrgId when enabled", func(t *testing.T) {
|
||||
setup()
|
||||
|
||||
err := publicdashboardStore.SavePublicDashboardConfig(context.Background(), SavePublicDashboardConfigCommand{
|
||||
err := publicdashboardStore.SavePublicDashboard(context.Background(), SavePublicDashboardConfigCommand{
|
||||
PublicDashboard: PublicDashboard{
|
||||
IsEnabled: true,
|
||||
Uid: "abc123",
|
||||
@@ -528,7 +524,7 @@ func TestIntegrationGetPublicDashboardOrgId(t *testing.T) {
|
||||
t.Run("GetPublicDashboardOrgId will return 0 when IsEnabled=false", func(t *testing.T) {
|
||||
setup()
|
||||
|
||||
err := publicdashboardStore.SavePublicDashboardConfig(context.Background(), SavePublicDashboardConfigCommand{
|
||||
err := publicdashboardStore.SavePublicDashboard(context.Background(), SavePublicDashboardConfigCommand{
|
||||
PublicDashboard: PublicDashboard{
|
||||
IsEnabled: false,
|
||||
Uid: "abc123",
|
||||
@@ -599,7 +595,7 @@ func insertPublicDashboard(t *testing.T, publicdashboardStore *PublicDashboardSt
|
||||
},
|
||||
}
|
||||
|
||||
err = publicdashboardStore.SavePublicDashboardConfig(ctx, cmd)
|
||||
err = publicdashboardStore.SavePublicDashboard(ctx, cmd)
|
||||
require.NoError(t, err)
|
||||
|
||||
pubdash, err := publicdashboardStore.GetPublicDashboardByUid(ctx, uid)
|
||||
|
||||
@@ -112,7 +112,7 @@ func (_m *FakePublicDashboardService) GetMetricRequest(ctx context.Context, dash
|
||||
}
|
||||
|
||||
// GetPublicDashboard provides a mock function with given fields: ctx, accessToken
|
||||
func (_m *FakePublicDashboardService) GetPublicDashboard(ctx context.Context, accessToken string) (*models.PublicDashboard, *pkgmodels.Dashboard, error) {
|
||||
func (_m *FakePublicDashboardService) GetPublicDashboardAndDashboard(ctx context.Context, accessToken string) (*models.PublicDashboard, *pkgmodels.Dashboard, error) {
|
||||
ret := _m.Called(ctx, accessToken)
|
||||
|
||||
var r0 *models.PublicDashboard
|
||||
@@ -144,7 +144,7 @@ func (_m *FakePublicDashboardService) GetPublicDashboard(ctx context.Context, ac
|
||||
}
|
||||
|
||||
// GetPublicDashboardConfig provides a mock function with given fields: ctx, orgId, dashboardUid
|
||||
func (_m *FakePublicDashboardService) GetPublicDashboardConfig(ctx context.Context, orgId int64, dashboardUid string) (*models.PublicDashboard, error) {
|
||||
func (_m *FakePublicDashboardService) GetPublicDashboard(ctx context.Context, orgId int64, dashboardUid string) (*models.PublicDashboard, error) {
|
||||
ret := _m.Called(ctx, orgId, dashboardUid)
|
||||
|
||||
var r0 *models.PublicDashboard
|
||||
@@ -234,7 +234,7 @@ func (_m *FakePublicDashboardService) ListPublicDashboards(ctx context.Context,
|
||||
}
|
||||
|
||||
// PublicDashboardEnabled provides a mock function with given fields: ctx, dashboardUid
|
||||
func (_m *FakePublicDashboardService) PublicDashboardEnabled(ctx context.Context, dashboardUid string) (bool, error) {
|
||||
func (_m *FakePublicDashboardService) PublicDashboardIsEnabled(ctx context.Context, dashboardUid string) (bool, error) {
|
||||
ret := _m.Called(ctx, dashboardUid)
|
||||
|
||||
var r0 bool
|
||||
@@ -255,7 +255,7 @@ func (_m *FakePublicDashboardService) PublicDashboardEnabled(ctx context.Context
|
||||
}
|
||||
|
||||
// SavePublicDashboardConfig provides a mock function with given fields: ctx, u, dto
|
||||
func (_m *FakePublicDashboardService) SavePublicDashboardConfig(ctx context.Context, u *user.SignedInUser, dto *models.SavePublicDashboardConfigDTO) (*models.PublicDashboard, error) {
|
||||
func (_m *FakePublicDashboardService) SavePublicDashboard(ctx context.Context, u *user.SignedInUser, dto *models.SavePublicDashboardConfigDTO) (*models.PublicDashboard, error) {
|
||||
ret := _m.Called(ctx, u, dto)
|
||||
|
||||
var r0 *models.PublicDashboard
|
||||
|
||||
@@ -105,7 +105,7 @@ func (_m *FakePublicDashboardStore) GetDashboard(ctx context.Context, dashboardU
|
||||
}
|
||||
|
||||
// GetPublicDashboard provides a mock function with given fields: ctx, accessToken
|
||||
func (_m *FakePublicDashboardStore) GetPublicDashboard(ctx context.Context, accessToken string) (*publicdashboardsmodels.PublicDashboard, *models.Dashboard, error) {
|
||||
func (_m *FakePublicDashboardStore) GetPublicDashboardAndDashboard(ctx context.Context, accessToken string) (*publicdashboardsmodels.PublicDashboard, *models.Dashboard, error) {
|
||||
ret := _m.Called(ctx, accessToken)
|
||||
|
||||
var r0 *publicdashboardsmodels.PublicDashboard
|
||||
@@ -159,8 +159,8 @@ func (_m *FakePublicDashboardStore) GetPublicDashboardByUid(ctx context.Context,
|
||||
return r0, r1
|
||||
}
|
||||
|
||||
// GetPublicDashboardConfig provides a mock function with given fields: ctx, orgId, dashboardUid
|
||||
func (_m *FakePublicDashboardStore) GetPublicDashboardConfig(ctx context.Context, orgId int64, dashboardUid string) (*publicdashboardsmodels.PublicDashboard, error) {
|
||||
// GetPublicDashboard provides a mock function with given fields: ctx, orgId, dashboardUid
|
||||
func (_m *FakePublicDashboardStore) GetPublicDashboard(ctx context.Context, orgId int64, dashboardUid string) (*publicdashboardsmodels.PublicDashboard, error) {
|
||||
ret := _m.Called(ctx, orgId, dashboardUid)
|
||||
|
||||
var r0 *publicdashboardsmodels.PublicDashboard
|
||||
@@ -226,7 +226,7 @@ func (_m *FakePublicDashboardStore) ListPublicDashboards(ctx context.Context, or
|
||||
return r0, r1
|
||||
}
|
||||
|
||||
// PublicDashboardEnabled provides a mock function with given fields: ctx, dashboardUid
|
||||
// PublicDashboardIsEnabled provides a mock function with given fields: ctx, dashboardUid
|
||||
func (_m *FakePublicDashboardStore) PublicDashboardEnabledExistsByDashboardUid(ctx context.Context, dashboardUid string) (bool, error) {
|
||||
ret := _m.Called(ctx, dashboardUid)
|
||||
|
||||
@@ -247,8 +247,8 @@ func (_m *FakePublicDashboardStore) PublicDashboardEnabledExistsByDashboardUid(c
|
||||
return r0, r1
|
||||
}
|
||||
|
||||
// SavePublicDashboardConfig provides a mock function with given fields: ctx, cmd
|
||||
func (_m *FakePublicDashboardStore) SavePublicDashboardConfig(ctx context.Context, cmd publicdashboardsmodels.SavePublicDashboardConfigCommand) error {
|
||||
// SavePublicDashboard provides a mock function with given fields: ctx, cmd
|
||||
func (_m *FakePublicDashboardStore) SavePublicDashboard(ctx context.Context, cmd publicdashboardsmodels.SavePublicDashboardConfigCommand) error {
|
||||
ret := _m.Called(ctx, cmd)
|
||||
|
||||
var r0 error
|
||||
@@ -262,7 +262,7 @@ func (_m *FakePublicDashboardStore) SavePublicDashboardConfig(ctx context.Contex
|
||||
}
|
||||
|
||||
// UpdatePublicDashboardConfig provides a mock function with given fields: ctx, cmd
|
||||
func (_m *FakePublicDashboardStore) UpdatePublicDashboardConfig(ctx context.Context, cmd publicdashboardsmodels.SavePublicDashboardConfigCommand) error {
|
||||
func (_m *FakePublicDashboardStore) UpdatePublicDashboard(ctx context.Context, cmd publicdashboardsmodels.SavePublicDashboardConfigCommand) error {
|
||||
ret := _m.Called(ctx, cmd)
|
||||
|
||||
var r0 error
|
||||
|
||||
@@ -14,31 +14,31 @@ import (
|
||||
|
||||
//go:generate mockery --name Service --structname FakePublicDashboardService --inpackage --filename public_dashboard_service_mock.go
|
||||
type Service interface {
|
||||
PublicDashboardEnabledExistsByAccessToken(ctx context.Context, accessToken string) (bool, error)
|
||||
GetAnnotations(ctx context.Context, reqDTO AnnotationsQueryDTO, accessToken string) ([]AnnotationEvent, error)
|
||||
GetDashboard(ctx context.Context, dashboardUid string) (*models.Dashboard, error)
|
||||
GetMetricRequest(ctx context.Context, dashboard *models.Dashboard, publicDashboard *PublicDashboard, panelId int64, reqDTO PublicDashboardQueryDTO) (dtos.MetricRequest, error)
|
||||
GetPublicDashboard(ctx context.Context, accessToken string) (*PublicDashboard, *models.Dashboard, error)
|
||||
GetPublicDashboardConfig(ctx context.Context, orgId int64, dashboardUid string) (*PublicDashboard, error)
|
||||
GetPublicDashboard(ctx context.Context, orgId int64, dashboardUid string) (*PublicDashboard, error)
|
||||
GetPublicDashboardAndDashboard(ctx context.Context, accessToken string) (*PublicDashboard, *models.Dashboard, error)
|
||||
GetPublicDashboardOrgId(ctx context.Context, accessToken string) (int64, error)
|
||||
GetQueryDataResponse(ctx context.Context, skipCache bool, reqDTO PublicDashboardQueryDTO, panelId int64, accessToken string) (*backend.QueryDataResponse, error)
|
||||
ListPublicDashboards(ctx context.Context, u *user.SignedInUser, orgId int64) ([]PublicDashboardListResponse, error)
|
||||
PublicDashboardEnabled(ctx context.Context, dashboardUid string) (bool, error)
|
||||
SavePublicDashboardConfig(ctx context.Context, u *user.SignedInUser, dto *SavePublicDashboardConfigDTO) (*PublicDashboard, error)
|
||||
PublicDashboardEnabledExistsByAccessToken(ctx context.Context, accessToken string) (bool, error)
|
||||
PublicDashboardIsEnabled(ctx context.Context, dashboardUid string) (bool, error)
|
||||
SavePublicDashboard(ctx context.Context, u *user.SignedInUser, dto *SavePublicDashboardConfigDTO) (*PublicDashboard, error)
|
||||
}
|
||||
|
||||
//go:generate mockery --name Store --structname FakePublicDashboardStore --inpackage --filename public_dashboard_store_mock.go
|
||||
type Store interface {
|
||||
PublicDashboardEnabledExistsByAccessToken(ctx context.Context, accessToken string) (bool, error)
|
||||
PublicDashboardEnabledExistsByDashboardUid(ctx context.Context, dashboardUid string) (bool, error)
|
||||
GenerateNewPublicDashboardUid(ctx context.Context) (string, error)
|
||||
GetDashboard(ctx context.Context, dashboardUid string) (*models.Dashboard, error)
|
||||
GenerateNewPublicDashboardAccessToken(ctx context.Context) (string, error)
|
||||
GetPublicDashboard(ctx context.Context, accessToken string) (*PublicDashboard, *models.Dashboard, error)
|
||||
GetDashboard(ctx context.Context, dashboardUid string) (*models.Dashboard, error)
|
||||
GetPublicDashboard(ctx context.Context, orgId int64, dashboardUid string) (*PublicDashboard, error)
|
||||
GetPublicDashboardAndDashboard(ctx context.Context, accessToken string) (*PublicDashboard, *models.Dashboard, error)
|
||||
GetPublicDashboardByUid(ctx context.Context, uid string) (*PublicDashboard, error)
|
||||
GetPublicDashboardConfig(ctx context.Context, orgId int64, dashboardUid string) (*PublicDashboard, error)
|
||||
GetPublicDashboardOrgId(ctx context.Context, accessToken string) (int64, error)
|
||||
ListPublicDashboards(ctx context.Context, orgId int64) ([]PublicDashboardListResponse, error)
|
||||
SavePublicDashboardConfig(ctx context.Context, cmd SavePublicDashboardConfigCommand) error
|
||||
UpdatePublicDashboardConfig(ctx context.Context, cmd SavePublicDashboardConfigCommand) error
|
||||
PublicDashboardEnabledExistsByAccessToken(ctx context.Context, accessToken string) (bool, error)
|
||||
PublicDashboardEnabledExistsByDashboardUid(ctx context.Context, dashboardUid string) (bool, error)
|
||||
SavePublicDashboard(ctx context.Context, cmd SavePublicDashboardConfigCommand) error
|
||||
UpdatePublicDashboard(ctx context.Context, cmd SavePublicDashboardConfigCommand) error
|
||||
}
|
||||
|
||||
@@ -19,7 +19,7 @@ import (
|
||||
|
||||
// GetAnnotations returns annotations for a public dashboard
|
||||
func (pd *PublicDashboardServiceImpl) GetAnnotations(ctx context.Context, reqDTO models.AnnotationsQueryDTO, accessToken string) ([]models.AnnotationEvent, error) {
|
||||
pub, dash, err := pd.GetPublicDashboard(ctx, accessToken)
|
||||
pub, dash, err := pd.GetPublicDashboardAndDashboard(ctx, accessToken)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -120,7 +120,7 @@ func (pd *PublicDashboardServiceImpl) GetMetricRequest(ctx context.Context, dash
|
||||
|
||||
// GetQueryDataResponse returns a query data response for the given panel and query
|
||||
func (pd *PublicDashboardServiceImpl) GetQueryDataResponse(ctx context.Context, skipCache bool, queryDto models.PublicDashboardQueryDTO, panelId int64, accessToken string) (*backend.QueryDataResponse, error) {
|
||||
publicDashboard, dashboard, err := pd.GetPublicDashboard(ctx, accessToken)
|
||||
publicDashboard, dashboard, err := pd.GetPublicDashboardAndDashboard(ctx, accessToken)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
@@ -399,7 +399,7 @@ func TestGetQueryDataResponse(t *testing.T) {
|
||||
TimeSettings: timeSettings,
|
||||
},
|
||||
}
|
||||
pubdashDto, err := service.SavePublicDashboardConfig(context.Background(), SignedInUser, dto)
|
||||
pubdashDto, err := service.SavePublicDashboard(context.Background(), SignedInUser, dto)
|
||||
require.NoError(t, err)
|
||||
|
||||
resp, _ := service.GetQueryDataResponse(context.Background(), true, publicDashboardQueryDTO, 1, pubdashDto.AccessToken)
|
||||
@@ -421,8 +421,9 @@ func TestGetAnnotations(t *testing.T) {
|
||||
store: &fakeStore,
|
||||
AnnotationsRepo: annotationsRepo,
|
||||
}
|
||||
fakeStore.On("GetPublicDashboard", mock.Anything, mock.AnythingOfType("string")).
|
||||
fakeStore.On("GetPublicDashboardAndDashboard", mock.Anything, mock.AnythingOfType("string")).
|
||||
Return(&PublicDashboard{Uid: "uid1", IsEnabled: true}, grafanamodels.NewDashboard("dash1"), nil)
|
||||
|
||||
reqDTO := AnnotationsQueryDTO{
|
||||
From: 1,
|
||||
To: 2,
|
||||
@@ -474,7 +475,7 @@ func TestGetAnnotations(t *testing.T) {
|
||||
AnnotationsRepo: &annotationsRepo,
|
||||
}
|
||||
pubdash := &PublicDashboard{Uid: "uid1", IsEnabled: true, OrgId: 1, DashboardUid: dashboard.Uid, AnnotationsEnabled: true}
|
||||
fakeStore.On("GetPublicDashboard", mock.Anything, mock.AnythingOfType("string")).Return(pubdash, dashboard, nil)
|
||||
fakeStore.On("GetPublicDashboardAndDashboard", mock.Anything, mock.AnythingOfType("string")).Return(pubdash, dashboard, nil)
|
||||
annotationsRepo.On("Find", mock.Anything, mock.Anything).Return([]*annotations.ItemDTO{
|
||||
{
|
||||
Id: 1,
|
||||
@@ -531,7 +532,7 @@ func TestGetAnnotations(t *testing.T) {
|
||||
AnnotationsRepo: &annotationsRepo,
|
||||
}
|
||||
pubdash := &PublicDashboard{Uid: "uid1", IsEnabled: true, OrgId: 1, DashboardUid: dashboard.Uid, AnnotationsEnabled: true}
|
||||
fakeStore.On("GetPublicDashboard", mock.Anything, mock.AnythingOfType("string")).Return(pubdash, dashboard, nil)
|
||||
fakeStore.On("GetPublicDashboardAndDashboard", mock.Anything, mock.AnythingOfType("string")).Return(pubdash, dashboard, nil)
|
||||
annotationsRepo.On("Find", mock.Anything, mock.Anything).Return([]*annotations.ItemDTO{
|
||||
{
|
||||
Id: 1,
|
||||
@@ -600,7 +601,7 @@ func TestGetAnnotations(t *testing.T) {
|
||||
AnnotationsRepo: &annotationsRepo,
|
||||
}
|
||||
pubdash := &PublicDashboard{Uid: "uid1", IsEnabled: true, OrgId: 1, DashboardUid: dashboard.Uid, AnnotationsEnabled: true}
|
||||
fakeStore.On("GetPublicDashboard", mock.Anything, mock.AnythingOfType("string")).Return(pubdash, dashboard, nil)
|
||||
fakeStore.On("GetPublicDashboardAndDashboard", mock.Anything, mock.AnythingOfType("string")).Return(pubdash, dashboard, nil)
|
||||
annotationsRepo.On("Find", mock.Anything, mock.Anything).Return([]*annotations.ItemDTO{
|
||||
{
|
||||
Id: 1,
|
||||
@@ -642,7 +643,7 @@ func TestGetAnnotations(t *testing.T) {
|
||||
}
|
||||
dashboard := grafanamodels.NewDashboard("dashWithNoAnnotations")
|
||||
pubdash := &PublicDashboard{Uid: "uid1", IsEnabled: true, OrgId: 1, DashboardUid: dashboard.Uid, AnnotationsEnabled: true}
|
||||
fakeStore.On("GetPublicDashboard", mock.Anything, mock.AnythingOfType("string")).Return(pubdash, dashboard, nil)
|
||||
fakeStore.On("GetPublicDashboardAndDashboard", mock.Anything, mock.AnythingOfType("string")).Return(pubdash, dashboard, nil)
|
||||
|
||||
items, err := service.GetAnnotations(context.Background(), AnnotationsQueryDTO{}, "abc123")
|
||||
|
||||
@@ -675,7 +676,7 @@ func TestGetAnnotations(t *testing.T) {
|
||||
annos := []DashAnnotation{grafanaAnnotation}
|
||||
dashboard := AddAnnotationsToDashboard(t, dash, annos)
|
||||
pubdash := &PublicDashboard{Uid: "uid1", IsEnabled: true, OrgId: 1, DashboardUid: dashboard.Uid, AnnotationsEnabled: false}
|
||||
fakeStore.On("GetPublicDashboard", mock.Anything, mock.AnythingOfType("string")).Return(pubdash, dashboard, nil)
|
||||
fakeStore.On("GetPublicDashboardAndDashboard", mock.Anything, mock.AnythingOfType("string")).Return(pubdash, dashboard, nil)
|
||||
|
||||
items, err := service.GetAnnotations(context.Background(), AnnotationsQueryDTO{}, "abc123")
|
||||
|
||||
@@ -707,7 +708,7 @@ func TestGetAnnotations(t *testing.T) {
|
||||
annos := []DashAnnotation{grafanaAnnotation}
|
||||
dash = AddAnnotationsToDashboard(t, dash, annos)
|
||||
pubdash := &PublicDashboard{Uid: "uid1", IsEnabled: true, OrgId: 1, DashboardUid: dash.Uid, AnnotationsEnabled: true}
|
||||
fakeStore.On("GetPublicDashboard", mock.Anything, mock.AnythingOfType("string")).Return(pubdash, dash, nil)
|
||||
fakeStore.On("GetPublicDashboardAndDashboard", mock.Anything, mock.AnythingOfType("string")).Return(pubdash, dash, nil)
|
||||
annotationsRepo.On("Find", mock.Anything, mock.Anything).Return(nil, errors.New("failed")).Maybe()
|
||||
|
||||
items, err := service.GetAnnotations(context.Background(), AnnotationsQueryDTO{}, "abc123")
|
||||
@@ -821,7 +822,7 @@ func TestBuildMetricRequest(t *testing.T) {
|
||||
},
|
||||
}
|
||||
|
||||
publicDashboardPD, err := service.SavePublicDashboardConfig(context.Background(), SignedInUser, dto)
|
||||
publicDashboardPD, err := service.SavePublicDashboard(context.Background(), SignedInUser, dto)
|
||||
require.NoError(t, err)
|
||||
|
||||
nonPublicDto := &SavePublicDashboardConfigDTO{
|
||||
@@ -835,7 +836,7 @@ func TestBuildMetricRequest(t *testing.T) {
|
||||
},
|
||||
}
|
||||
|
||||
_, err = service.SavePublicDashboardConfig(context.Background(), SignedInUser, nonPublicDto)
|
||||
_, err = service.SavePublicDashboard(context.Background(), SignedInUser, nonPublicDto)
|
||||
require.NoError(t, err)
|
||||
|
||||
t.Run("extracts queries from provided dashboard", func(t *testing.T) {
|
||||
|
||||
@@ -70,9 +70,9 @@ func (pd *PublicDashboardServiceImpl) GetDashboard(ctx context.Context, dashboar
|
||||
return dashboard, err
|
||||
}
|
||||
|
||||
// GetPublicDashboard Gets public dashboard via access token
|
||||
func (pd *PublicDashboardServiceImpl) GetPublicDashboard(ctx context.Context, accessToken string) (*PublicDashboard, *models.Dashboard, error) {
|
||||
pubdash, dash, err := pd.store.GetPublicDashboard(ctx, accessToken)
|
||||
// GetPublicDashboardAndDashboard Gets public dashboard via access token
|
||||
func (pd *PublicDashboardServiceImpl) GetPublicDashboardAndDashboard(ctx context.Context, accessToken string) (*PublicDashboard, *models.Dashboard, error) {
|
||||
pubdash, dash, err := pd.store.GetPublicDashboardAndDashboard(ctx, accessToken)
|
||||
ctxLogger := pd.log.FromContext(ctx)
|
||||
|
||||
if err != nil {
|
||||
@@ -80,26 +80,26 @@ func (pd *PublicDashboardServiceImpl) GetPublicDashboard(ctx context.Context, ac
|
||||
}
|
||||
|
||||
if pubdash == nil {
|
||||
ctxLogger.Error("GetPublicDashboard: Public dashboard not found", "accessToken", accessToken)
|
||||
ctxLogger.Error("GetPublicDashboardAndDashboard: Public dashboard not found", "accessToken", accessToken)
|
||||
return nil, nil, ErrPublicDashboardNotFound
|
||||
}
|
||||
|
||||
if dash == nil {
|
||||
ctxLogger.Error("GetPublicDashboard: Dashboard not found", "accessToken", accessToken)
|
||||
ctxLogger.Error("GetPublicDashboardAndDashboard: Dashboard not found", "accessToken", accessToken)
|
||||
return nil, nil, ErrPublicDashboardNotFound
|
||||
}
|
||||
|
||||
if !pubdash.IsEnabled {
|
||||
ctxLogger.Error("GetPublicDashboard: Public dashboard is disabled", "accessToken", accessToken)
|
||||
ctxLogger.Error("GetPublicDashboardAndDashboard: Public dashboard is disabled", "accessToken", accessToken)
|
||||
return nil, nil, ErrPublicDashboardNotFound
|
||||
}
|
||||
|
||||
return pubdash, dash, nil
|
||||
}
|
||||
|
||||
// GetPublicDashboardConfig is a helper method to retrieve the public dashboard configuration for a given dashboard from the database
|
||||
func (pd *PublicDashboardServiceImpl) GetPublicDashboardConfig(ctx context.Context, orgId int64, dashboardUid string) (*PublicDashboard, error) {
|
||||
pdc, err := pd.store.GetPublicDashboardConfig(ctx, orgId, dashboardUid)
|
||||
// GetPublicDashboard is a helper method to retrieve the public dashboard configuration for a given dashboard from the database
|
||||
func (pd *PublicDashboardServiceImpl) GetPublicDashboard(ctx context.Context, orgId int64, dashboardUid string) (*PublicDashboard, error) {
|
||||
pdc, err := pd.store.GetPublicDashboard(ctx, orgId, dashboardUid)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -107,9 +107,9 @@ func (pd *PublicDashboardServiceImpl) GetPublicDashboardConfig(ctx context.Conte
|
||||
return pdc, nil
|
||||
}
|
||||
|
||||
// SavePublicDashboardConfig is a helper method to persist the sharing config
|
||||
// SavePublicDashboard is a helper method to persist the sharing config
|
||||
// to the database. It handles validations for sharing config and persistence
|
||||
func (pd *PublicDashboardServiceImpl) SavePublicDashboardConfig(ctx context.Context, u *user.SignedInUser, dto *SavePublicDashboardConfigDTO) (*PublicDashboard, error) {
|
||||
func (pd *PublicDashboardServiceImpl) SavePublicDashboard(ctx context.Context, u *user.SignedInUser, dto *SavePublicDashboardConfigDTO) (*PublicDashboard, error) {
|
||||
// validate if the dashboard exists
|
||||
dashboard, err := pd.GetDashboard(ctx, dto.DashboardUid)
|
||||
if err != nil {
|
||||
@@ -134,9 +134,9 @@ func (pd *PublicDashboardServiceImpl) SavePublicDashboardConfig(ctx context.Cont
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
pubdashUid, err = pd.savePublicDashboardConfig(ctx, dto)
|
||||
pubdashUid, err = pd.savePublicDashboard(ctx, dto)
|
||||
} else {
|
||||
pubdashUid, err = pd.updatePublicDashboardConfig(ctx, dto)
|
||||
pubdashUid, err = pd.updatePublicDashboard(ctx, dto)
|
||||
}
|
||||
if err != nil {
|
||||
return nil, err
|
||||
@@ -153,9 +153,9 @@ func (pd *PublicDashboardServiceImpl) SavePublicDashboardConfig(ctx context.Cont
|
||||
return newPubdash, err
|
||||
}
|
||||
|
||||
// Called by SavePublicDashboardConfig this handles business logic
|
||||
// Called by SavePublicDashboard this handles business logic
|
||||
// to generate token and calls create at the database layer
|
||||
func (pd *PublicDashboardServiceImpl) savePublicDashboardConfig(ctx context.Context, dto *SavePublicDashboardConfigDTO) (string, error) {
|
||||
func (pd *PublicDashboardServiceImpl) savePublicDashboard(ctx context.Context, dto *SavePublicDashboardConfigDTO) (string, error) {
|
||||
uid, err := pd.store.GenerateNewPublicDashboardUid(ctx)
|
||||
if err != nil {
|
||||
return "", err
|
||||
@@ -180,7 +180,7 @@ func (pd *PublicDashboardServiceImpl) savePublicDashboardConfig(ctx context.Cont
|
||||
},
|
||||
}
|
||||
|
||||
err = pd.store.SavePublicDashboardConfig(ctx, cmd)
|
||||
err = pd.store.SavePublicDashboard(ctx, cmd)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
@@ -190,7 +190,7 @@ func (pd *PublicDashboardServiceImpl) savePublicDashboardConfig(ctx context.Cont
|
||||
|
||||
// Called by SavePublicDashboard this handles business logic for updating a
|
||||
// dashboard and calls update at the database layer
|
||||
func (pd *PublicDashboardServiceImpl) updatePublicDashboardConfig(ctx context.Context, dto *SavePublicDashboardConfigDTO) (string, error) {
|
||||
func (pd *PublicDashboardServiceImpl) updatePublicDashboard(ctx context.Context, dto *SavePublicDashboardConfigDTO) (string, error) {
|
||||
cmd := SavePublicDashboardConfigCommand{
|
||||
PublicDashboard: PublicDashboard{
|
||||
Uid: dto.PublicDashboard.Uid,
|
||||
@@ -202,7 +202,7 @@ func (pd *PublicDashboardServiceImpl) updatePublicDashboardConfig(ctx context.Co
|
||||
},
|
||||
}
|
||||
|
||||
return dto.PublicDashboard.Uid, pd.store.UpdatePublicDashboardConfig(ctx, cmd)
|
||||
return dto.PublicDashboard.Uid, pd.store.UpdatePublicDashboard(ctx, cmd)
|
||||
}
|
||||
|
||||
// Gets a list of public dashboards by orgId
|
||||
@@ -215,7 +215,7 @@ func (pd *PublicDashboardServiceImpl) ListPublicDashboards(ctx context.Context,
|
||||
return pd.filterDashboardsByPermissions(ctx, u, publicDashboards)
|
||||
}
|
||||
|
||||
func (pd *PublicDashboardServiceImpl) PublicDashboardEnabled(ctx context.Context, dashboardUid string) (bool, error) {
|
||||
func (pd *PublicDashboardServiceImpl) PublicDashboardIsEnabled(ctx context.Context, dashboardUid string) (bool, error) {
|
||||
return pd.store.PublicDashboardEnabledExistsByDashboardUid(ctx, dashboardUid)
|
||||
}
|
||||
|
||||
|
||||
@@ -98,10 +98,10 @@ func TestGetPublicDashboard(t *testing.T) {
|
||||
store: &fakeStore,
|
||||
}
|
||||
|
||||
fakeStore.On("GetPublicDashboard", mock.Anything, mock.Anything).
|
||||
fakeStore.On("GetPublicDashboardAndDashboard", mock.Anything, mock.Anything).
|
||||
Return(test.StoreResp.pd, test.StoreResp.d, test.StoreResp.err)
|
||||
|
||||
pdc, dash, err := service.GetPublicDashboard(context.Background(), test.AccessToken)
|
||||
pdc, dash, err := service.GetPublicDashboardAndDashboard(context.Background(), test.AccessToken)
|
||||
if test.ErrResp != nil {
|
||||
assert.Error(t, test.ErrResp, err)
|
||||
} else {
|
||||
@@ -143,10 +143,10 @@ func TestSavePublicDashboard(t *testing.T) {
|
||||
},
|
||||
}
|
||||
|
||||
_, err := service.SavePublicDashboardConfig(context.Background(), SignedInUser, dto)
|
||||
_, err := service.SavePublicDashboard(context.Background(), SignedInUser, dto)
|
||||
require.NoError(t, err)
|
||||
|
||||
pubdash, err := service.GetPublicDashboardConfig(context.Background(), dashboard.OrgId, dashboard.Uid)
|
||||
pubdash, err := service.GetPublicDashboard(context.Background(), dashboard.OrgId, dashboard.Uid)
|
||||
require.NoError(t, err)
|
||||
|
||||
// DashboardUid/OrgId/CreatedBy set by the command, not parameters
|
||||
@@ -187,10 +187,10 @@ func TestSavePublicDashboard(t *testing.T) {
|
||||
},
|
||||
}
|
||||
|
||||
_, err := service.SavePublicDashboardConfig(context.Background(), SignedInUser, dto)
|
||||
_, err := service.SavePublicDashboard(context.Background(), SignedInUser, dto)
|
||||
require.NoError(t, err)
|
||||
|
||||
pubdash, err := service.GetPublicDashboardConfig(context.Background(), dashboard.OrgId, dashboard.Uid)
|
||||
pubdash, err := service.GetPublicDashboard(context.Background(), dashboard.OrgId, dashboard.Uid)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, defaultPubdashTimeSettings, pubdash.TimeSettings)
|
||||
})
|
||||
@@ -218,7 +218,7 @@ func TestSavePublicDashboard(t *testing.T) {
|
||||
},
|
||||
}
|
||||
|
||||
_, err := service.SavePublicDashboardConfig(context.Background(), SignedInUser, dto)
|
||||
_, err := service.SavePublicDashboard(context.Background(), SignedInUser, dto)
|
||||
require.Error(t, err)
|
||||
})
|
||||
|
||||
@@ -247,11 +247,11 @@ func TestSavePublicDashboard(t *testing.T) {
|
||||
},
|
||||
}
|
||||
|
||||
_, err := service.SavePublicDashboardConfig(context.Background(), SignedInUser, dto)
|
||||
_, err := service.SavePublicDashboard(context.Background(), SignedInUser, dto)
|
||||
|
||||
require.Error(t, err)
|
||||
require.Equal(t, err, ErrPublicDashboardFailedGenerateAccessToken)
|
||||
publicDashboardStore.AssertNotCalled(t, "SavePublicDashboardConfig")
|
||||
publicDashboardStore.AssertNotCalled(t, "SavePublicDashboard")
|
||||
})
|
||||
}
|
||||
|
||||
@@ -278,7 +278,7 @@ func TestUpdatePublicDashboard(t *testing.T) {
|
||||
},
|
||||
}
|
||||
|
||||
savedPubdash, err := service.SavePublicDashboardConfig(context.Background(), SignedInUser, dto)
|
||||
savedPubdash, err := service.SavePublicDashboard(context.Background(), SignedInUser, dto)
|
||||
require.NoError(t, err)
|
||||
|
||||
// attempt to overwrite settings
|
||||
@@ -301,8 +301,8 @@ func TestUpdatePublicDashboard(t *testing.T) {
|
||||
}
|
||||
|
||||
// Since the dto.PublicDashboard has a uid, this will call
|
||||
// service.updatePublicDashboardConfig
|
||||
updatedPubdash, err := service.SavePublicDashboardConfig(context.Background(), SignedInUser, dto)
|
||||
// service.updatePublicDashboard
|
||||
updatedPubdash, err := service.SavePublicDashboard(context.Background(), SignedInUser, dto)
|
||||
require.NoError(t, err)
|
||||
|
||||
// don't get updated
|
||||
@@ -342,8 +342,8 @@ func TestUpdatePublicDashboard(t *testing.T) {
|
||||
}
|
||||
|
||||
// Since the dto.PublicDashboard has a uid, this will call
|
||||
// service.updatePublicDashboardConfig
|
||||
savedPubdash, err := service.SavePublicDashboardConfig(context.Background(), SignedInUser, dto)
|
||||
// service.updatePublicDashboard
|
||||
savedPubdash, err := service.SavePublicDashboard(context.Background(), SignedInUser, dto)
|
||||
require.NoError(t, err)
|
||||
|
||||
// attempt to overwrite settings
|
||||
@@ -363,7 +363,7 @@ func TestUpdatePublicDashboard(t *testing.T) {
|
||||
},
|
||||
}
|
||||
|
||||
updatedPubdash, err := service.SavePublicDashboardConfig(context.Background(), SignedInUser, dto)
|
||||
updatedPubdash, err := service.SavePublicDashboard(context.Background(), SignedInUser, dto)
|
||||
require.NoError(t, err)
|
||||
|
||||
assert.Equal(t, &TimeSettings{}, updatedPubdash.TimeSettings)
|
||||
|
||||
Reference in New Issue
Block a user