PublicDashboards: Audit table pagination (#69823)
This commit is contained in:
@@ -90,7 +90,24 @@ func (api *Api) RegisterAPIEndpoints() {
|
||||
// ListPublicDashboards Gets list of public dashboards by orgId
|
||||
// GET /api/dashboards/public-dashboards
|
||||
func (api *Api) ListPublicDashboards(c *contextmodel.ReqContext) response.Response {
|
||||
resp, err := api.PublicDashboardService.FindAll(c.Req.Context(), c.SignedInUser, c.OrgID)
|
||||
perPage := c.QueryInt("perpage")
|
||||
if perPage <= 0 {
|
||||
perPage = 1000
|
||||
}
|
||||
|
||||
page := c.QueryInt("page")
|
||||
if page < 1 {
|
||||
page = 1
|
||||
}
|
||||
|
||||
resp, err := api.PublicDashboardService.FindAllWithPagination(c.Req.Context(), &PublicDashboardListQuery{
|
||||
OrgID: c.OrgID,
|
||||
Query: c.Query("query"),
|
||||
Page: page,
|
||||
Limit: perPage,
|
||||
User: c.SignedInUser,
|
||||
})
|
||||
|
||||
if err != nil {
|
||||
return response.Err(err)
|
||||
}
|
||||
|
||||
@@ -89,19 +89,21 @@ func TestAPIFeatureFlag(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestAPIListPublicDashboard(t *testing.T) {
|
||||
successResp := []PublicDashboardListResponse{
|
||||
{
|
||||
Uid: "1234asdfasdf",
|
||||
AccessToken: "asdfasdf",
|
||||
DashboardUid: "abc1234",
|
||||
IsEnabled: true,
|
||||
successResp := &PublicDashboardListResponseWithPagination{
|
||||
PublicDashboards: []*PublicDashboardListResponse{
|
||||
{
|
||||
Uid: "1234asdfasdf",
|
||||
AccessToken: "asdfasdf",
|
||||
DashboardUid: "abc1234",
|
||||
IsEnabled: true,
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
testCases := []struct {
|
||||
Name string
|
||||
User *user.SignedInUser
|
||||
Response []PublicDashboardListResponse
|
||||
Response *PublicDashboardListResponseWithPagination
|
||||
ResponseErr error
|
||||
ExpectedHttpResponse int
|
||||
}{
|
||||
@@ -131,7 +133,7 @@ func TestAPIListPublicDashboard(t *testing.T) {
|
||||
for _, test := range testCases {
|
||||
t.Run(test.Name, func(t *testing.T) {
|
||||
service := publicdashboards.NewFakePublicDashboardService(t)
|
||||
service.On("FindAll", mock.Anything, mock.Anything, mock.Anything).
|
||||
service.On("FindAllWithPagination", mock.Anything, mock.Anything, mock.Anything).
|
||||
Return(test.Response, test.ResponseErr).Maybe()
|
||||
|
||||
cfg := setting.NewCfg()
|
||||
@@ -143,10 +145,10 @@ func TestAPIListPublicDashboard(t *testing.T) {
|
||||
assert.Equal(t, test.ExpectedHttpResponse, response.Code)
|
||||
|
||||
if test.ExpectedHttpResponse == http.StatusOK {
|
||||
var jsonResp []PublicDashboardListResponse
|
||||
var jsonResp PublicDashboardListResponseWithPagination
|
||||
err := json.Unmarshal(response.Body.Bytes(), &jsonResp)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, jsonResp[0].Uid, "1234asdfasdf")
|
||||
assert.Equal(t, jsonResp.PublicDashboards[0].Uid, "1234asdfasdf")
|
||||
}
|
||||
|
||||
if test.ResponseErr != nil {
|
||||
@@ -155,7 +157,7 @@ func TestAPIListPublicDashboard(t *testing.T) {
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, "Internal server error", errResp.Message)
|
||||
assert.Equal(t, "publicdashboards.internalServerError", errResp.MessageID)
|
||||
service.AssertNotCalled(t, "FindAll")
|
||||
service.AssertNotCalled(t, "FindAllWithPagination")
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -322,7 +322,7 @@ func TestIntegrationUnauthenticatedUserCanGetPubdashPanelQueryData(t *testing.T)
|
||||
annotationsService := annotationstest.NewFakeAnnotationsRepo()
|
||||
|
||||
// create public dashboard
|
||||
store := publicdashboardsStore.ProvideStore(db)
|
||||
store := publicdashboardsStore.ProvideStore(db, db.Cfg, featuremgmt.WithFeatures())
|
||||
cfg := setting.NewCfg()
|
||||
ac := acmock.New()
|
||||
ws := publicdashboardsService.ProvideServiceWrapper(store)
|
||||
|
||||
Reference in New Issue
Block a user