Removing tracks from spotify AND mopidy playlists

This commit is contained in:
James Barnsley
2016-11-13 12:55:00 +13:00
parent b2fa2c0f1e
commit 003b1d6569
8 changed files with 93 additions and 43 deletions

View File

@ -588,13 +588,13 @@ export function toggleFollowingPlaylist( uri, method ){
}
}
export function deleteTracksFromPlaylist( uri, snapshot_id, positions ){
export function deleteTracksFromPlaylist( uri, snapshot_id, tracks_indexes ){
return (dispatch, getState) => {
sendRequest( dispatch, getState, 'users/'+ helpers.getFromUri('userid',uri) + '/playlists/'+ helpers.getFromUri('playlistid',uri) + '/tracks', 'DELETE', { snapshot_id: snapshot_id, positions: positions } )
sendRequest( dispatch, getState, 'users/'+ helpers.getFromUri('userid',uri) + '/playlists/'+ helpers.getFromUri('playlistid',uri) + '/tracks', 'DELETE', { snapshot_id: snapshot_id, positions: tracks_indexes } )
.then( response => {
dispatch({
type: 'SPOTIFY_PLAYLIST_TRACKS_REMOVED',
positions: positions,
type: 'PLAYLIST_TRACKS_REMOVED',
tracks_indexes: tracks_indexes,
snapshot_id: response.snapshot_id
});
});

View File

@ -15,6 +15,21 @@ const SpotifyMiddleware = (function(){
case 'SPOTIFY_CONNECT':
store.dispatch( actions.getMe() )
case 'SPOTIFY_REMOVE_PLAYLIST_TRACKS':
var playlist = state.ui.playlist
if( !store.getState().spotify.authorized ){
alert('Must be logged in to Spotify to do this')
return
}
if( !store.getState().spotify.me || store.getState().spotify.me.id != playlist.owner.id ){
alert('You can only modify tracks you own')
return
}
store.dispatch( actions.deleteTracksFromPlaylist( playlist.uri, playlist.snapshot_id, action.tracks_indexes ))
break
// when our mopidy server current track changes
case 'MOPIDY_CURRENTTLTRACK':