|
@@ -70,30 +70,36 @@ let lib = {
|
|
|
next(null, song);
|
|
|
});
|
|
|
} else {
|
|
|
- next(null, {_id: songId, title: song.title, duration: song.duration});
|
|
|
+ next(null, {
|
|
|
+ _id: songId,
|
|
|
+ title: song.title,
|
|
|
+ duration: song.duration
|
|
|
+ });
|
|
|
}
|
|
|
});
|
|
|
},
|
|
|
(newSong, next) => {
|
|
|
db.models.playlist.findOne({ _id: playlistId }, (err, playlist) => {
|
|
|
- if (err) throw err;
|
|
|
-
|
|
|
- playlist.songs.push(newSong);
|
|
|
- playlist.save(err => {
|
|
|
- if (err) {
|
|
|
- console.error(err);
|
|
|
- return next('Failed to add song to playlist');
|
|
|
- }
|
|
|
-
|
|
|
- cache.hset('playlists', playlistId, playlist);
|
|
|
- next(null, playlist);
|
|
|
- });
|
|
|
+ if (err) console.error(err);
|
|
|
+
|
|
|
+ if (Array.isArray(playlist.songs)) {
|
|
|
+ playlist.songs.push(newSong);
|
|
|
+ playlist.save(err => {
|
|
|
+ if (err) {
|
|
|
+ console.error(err);
|
|
|
+ return next('Failed to add song to playlist');
|
|
|
+ }
|
|
|
+
|
|
|
+ cache.hset('playlists', playlistId, playlist);
|
|
|
+ next(null, playlist);
|
|
|
+ });
|
|
|
+ }
|
|
|
});
|
|
|
}
|
|
|
],
|
|
|
(err, playlist) => {
|
|
|
if (err) return cb({ status: 'error', message: err });
|
|
|
- else return cb({ status: 'success', message: 'Song has been successfully added to the playlist', data: playlist.songs });
|
|
|
+ else if (playlist.songs) return cb({ status: 'success', message: 'Song has been successfully added to the playlist', data: playlist.songs });
|
|
|
});
|
|
|
},
|
|
|
|