Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 11 additions & 18 deletions api/dbv1/get_account_playlists.sql.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

29 changes: 11 additions & 18 deletions api/dbv1/queries/get_account_playlists.sql
Original file line number Diff line number Diff line change
@@ -1,11 +1,15 @@
-- name: GetAccountPlaylists :many
WITH saved_playlists AS (
SELECT save_item_id
WITH playlist_ids AS (
SELECT save_item_id as id
FROM saves
WHERE user_id = @user_id
AND is_current = TRUE
WHERE saves.user_id = @user_id
AND is_delete = FALSE
AND (save_type = 'playlist' OR save_type = 'album')
UNION
SELECT p.playlist_id AS id
FROM playlists p
WHERE p.is_delete = FALSE
AND p.playlist_owner_id = @user_id
)
SELECT
p.playlist_id,
Expand All @@ -18,17 +22,6 @@ SELECT
p.created_at
FROM playlists p
JOIN users u ON p.playlist_owner_id = u.user_id
WHERE (
-- Owned playlists
(p.is_current = TRUE
AND p.is_delete = FALSE
AND p.playlist_owner_id = @user_id)

OR

-- Saved playlists
(p.is_current = TRUE
AND p.is_delete = FALSE
AND p.playlist_id IN (SELECT save_item_id FROM saved_playlists))
)
ORDER BY p.created_at DESC;
WHERE p.is_delete = false
AND p.playlist_id IN (SELECT id FROM playlist_ids)
ORDER BY p.created_at DESC, p.playlist_id ASC;
8 changes: 6 additions & 2 deletions api/v1_users_account_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,12 @@ func TestGetUsersAccount(t *testing.T) {

// Check playlists
assert.Equal(t, 2, len(accountResponse.Data.Playlists))
assert.Equal(t, "SecondAlbum", accountResponse.Data.Playlists[0].Name)
assert.Equal(t, true, accountResponse.Data.Playlists[0].IsAlbum)
assert.Equal(t, "First", accountResponse.Data.Playlists[0].Name)
assert.Equal(t, false, accountResponse.Data.Playlists[0].IsAlbum)
assert.Equal(t, "rayjacobson", accountResponse.Data.User.Handle.String)

assert.Equal(t, "SecondAlbum", accountResponse.Data.Playlists[1].Name)
assert.Equal(t, true, accountResponse.Data.Playlists[1].IsAlbum)
assert.Equal(t, "rayjacobson", accountResponse.Data.User.Handle.String)

// Check playlist library
Expand Down
Loading