backend: add PlaylistUIDs to Playlist; remove playlist IDs from API (#49609) (#50828)

* backend/api: refactor PlaylistId to PlaylistUid
* Add org_id to Get and Update playlist functions
Fix migration - no longer pad the uid; fix mysql syntax

The relevant tests are passing using postgres, mysql and the default sqllite backends, but there are a number of other failing tests when using postgres and myself so I'm not entirely confident with those results.

* fix bad query in GetPlaylistItem and add a test that would have caught the mistake in the first place. Reverted the playlist_uid column addition in playlist_item; it became unnecessary after this PR.

Added default value to the new UID column based on PR feedback.

* break this PRs migration into its own function

* Playlists: Update UI to use the updated API

Co-authored-by: Sofia Papagiannaki <1632407+papagian@users.noreply.github.com>
(cherry picked from commit a33a023629)

Co-authored-by: Kristin Laemmert <mildwonkey@users.noreply.github.com>
This commit is contained in:
Grot (@grafanabot)
2022-06-14 15:48:44 -04:00
committed by GitHub
co-authored by Kristin Laemmert
parent d78c04c8e6
commit 8ef7fd3859
26 changed files with 231 additions and 163 deletions
+17 -17
View File
@@ -42,7 +42,7 @@ HTTP/1.1 200
Content-Type: application/json
[
{
"id": 1,
"uid": "1",
"name": "my playlist",
"interval": "5m"
}
@@ -51,7 +51,7 @@ Content-Type: application/json
## Get one playlist
`GET /api/playlists/:id`
`GET /api/playlists/:uid`
**Example Request**:
@@ -67,14 +67,14 @@ Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
HTTP/1.1 200
Content-Type: application/json
{
"id" : 1,
"uid" : "1",
"name": "my playlist",
"interval": "5m",
"orgId": "my org",
"items": [
{
"id": 1,
"playlistId": 1,
"playlistUid": "1",
"type": "dashboard_by_id",
"value": "3",
"order": 1,
@@ -82,7 +82,7 @@ Content-Type: application/json
},
{
"id": 2,
"playlistId": 1,
"playlistUid": "1",
"type": "dashboard_by_tag",
"value": "myTag",
"order": 2,
@@ -94,7 +94,7 @@ Content-Type: application/json
## Get Playlist items
`GET /api/playlists/:id/items`
`GET /api/playlists/:uid/items`
**Example Request**:
@@ -112,7 +112,7 @@ Content-Type: application/json
[
{
"id": 1,
"playlistId": 1,
"playlistUid": "1",
"type": "dashboard_by_id",
"value": "3",
"order": 1,
@@ -120,7 +120,7 @@ Content-Type: application/json
},
{
"id": 2,
"playlistId": 1,
"playlistUid": "1",
"type": "dashboard_by_tag",
"value": "myTag",
"order": 2,
@@ -131,7 +131,7 @@ Content-Type: application/json
## Get Playlist dashboards
`GET /api/playlists/:id/dashboards`
`GET /api/playlists/:uid/dashboards`
**Example Request**:
@@ -198,7 +198,7 @@ Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
HTTP/1.1 200
Content-Type: application/json
{
"id": 1,
"uid": "1",
"name": "my playlist",
"interval": "5m"
}
@@ -206,7 +206,7 @@ Content-Type: application/json
## Update a playlist
`PUT /api/playlists/:id`
`PUT /api/playlists/:uid`
**Example Request**:
@@ -220,14 +220,14 @@ Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
"interval": "5m",
"items": [
{
"playlistId": 1,
"playlistUid": "1",
"type": "dashboard_by_id",
"value": "3",
"order": 1,
"title":"my third dashboard"
},
{
"playlistId": 1,
"playlistUid": "1",
"type": "dashboard_by_tag",
"value": "myTag",
"order": 2,
@@ -243,14 +243,14 @@ Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
HTTP/1.1 200
Content-Type: application/json
{
"id" : 1,
"uid" : "1",
"name": "my playlist",
"interval": "5m",
"orgId": "my org",
"items": [
{
"id": 1,
"playlistId": 1,
"playlistUid": "1",
"type": "dashboard_by_id",
"value": "3",
"order": 1,
@@ -258,7 +258,7 @@ Content-Type: application/json
},
{
"id": 2,
"playlistId": 1,
"playlistUid": "1",
"type": "dashboard_by_tag",
"value": "myTag",
"order": 2,
@@ -270,7 +270,7 @@ Content-Type: application/json
## Delete a playlist
`DELETE /api/playlists/:id`
`DELETE /api/playlists/:uid`
**Example Request**: