Chore: Add dashboard UID as query parameter of Get annotation endpoint (#52764)

* Chore: Add dashboard uid as query parameter of Get annotation endpoint

* Update pkg/api/annotations.go

Co-authored-by: Sofia Papagiannaki <1632407+papagian@users.noreply.github.com>

* update the dashboarUID

Co-authored-by: Sofia Papagiannaki <1632407+papagian@users.noreply.github.com>
This commit is contained in:
ying-jeanne 2022-07-26 20:52:34 -05:00 committed by GitHub
parent a5410063c6
commit 7da0a6d3ce
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 29 additions and 0 deletions

View File

@ -48,6 +48,7 @@ Query Parameters:
- `limit`: number. Optional - default is 100. Max limit for results returned.
- `alertId`: number. Optional. Find annotations for a specified alert.
- `dashboardId`: number. Optional. Find annotations that are scoped to a specific dashboard
- `dashboardUID`: string. Optional. Find annotations that are scoped to a specific dashboard, when dashboardUID presents, dashboardId would be ignored.
- `panelId`: number. Optional. Find annotations that are scoped to a specific panel
- `userId`: number. Optional. Find annotations created by a specific user
- `type`: string. Optional. `alert`|`annotation` Return alerts or user created annotations

View File

@ -26,6 +26,7 @@ func (hs *HTTPServer) GetAnnotations(c *models.ReqContext) response.Response {
UserId: c.QueryInt64("userId"),
AlertId: c.QueryInt64("alertId"),
DashboardId: c.QueryInt64("dashboardId"),
DashboardUid: c.Query("dashboardUID"),
PanelId: c.QueryInt64("panelId"),
Limit: c.QueryInt64("limit"),
Tags: c.QueryStrings("tags"),
@ -34,6 +35,16 @@ func (hs *HTTPServer) GetAnnotations(c *models.ReqContext) response.Response {
SignedInUser: c.SignedInUser,
}
// When dashboard UID present in the request, we ignore dashboard ID
if query.DashboardUid != "" {
dq := models.GetDashboardQuery{Uid: query.DashboardUid, OrgId: c.OrgId}
err := hs.DashboardService.GetDashboard(c.Req.Context(), &dq)
if err != nil {
return response.Error(http.StatusBadRequest, "Invalid dashboard UID in the request", err)
}
query.DashboardId = dq.Id
}
repo := annotations.GetRepository()
items, err := repo.Find(c.Req.Context(), query)

View File

@ -149,6 +149,10 @@ type GetAnnotationsParams struct {
// in:query
// required:false
DashboardID int64 `json:"dashboardId"`
// Find annotations that are scoped to a specific dashboard
// in:query
// required:false
DashboardUID string `json:"dashboardUID"`
// Find annotations that are scoped to a specific panel
// in:query
// required:false

View File

@ -33,6 +33,7 @@ type ItemQuery struct {
UserId int64 `json:"userId"`
AlertId int64 `json:"alertId"`
DashboardId int64 `json:"dashboardId"`
DashboardUid string `json:"dashboardUID"`
PanelId int64 `json:"panelId"`
AnnotationId int64 `json:"annotationId"`
Tags []string `json:"tags"`

View File

@ -2018,6 +2018,12 @@
"name": "dashboardId",
"in": "query"
},
{
"type": "string",
"description": "Find annotations that are scoped to a specific dashboard",
"name": "dashboardUID",
"in": "query"
},
{
"type": "integer",
"format": "int64",

View File

@ -2018,6 +2018,12 @@
"name": "dashboardId",
"in": "query"
},
{
"type": "string",
"description": "Find annotations that are scoped to a specific dashboard",
"name": "dashboardUID",
"in": "query"
},
{
"type": "integer",
"format": "int64",