From df60e91bf3caa65b8b1ce220f1cf53dc8f786f7d Mon Sep 17 00:00:00 2001 From: Sander Vocke Date: Wed, 20 Oct 2021 13:14:36 +0200 Subject: [PATCH] Fix album patch --- server/db/Album.ts | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/server/db/Album.ts b/server/db/Album.ts index ba21e14..a5c18d2 100644 --- a/server/db/Album.ts +++ b/server/db/Album.ts @@ -174,9 +174,9 @@ export async function modifyAlbum(userId: number, albumId: number, album: Album, const artistIdsPromise: Promise = album.artistIds ? trx.select('artistId') - .from('artists_albums') - .whereIn('artistId', album.artistIds) - .then((as: any) => as.map((a: any) => a['artistId'])) + .from('artists') + .whereIn('id', album.artistIds) + .then((as: any) => as.map((a: any) => a['id'])) : (async () => undefined)(); // Start retrieving tracks if we are modifying those. @@ -192,18 +192,18 @@ export async function modifyAlbum(userId: number, albumId: number, album: Album, const tagIdsPromise = album.tagIds ? trx.select('id') - .from('albums_tags') - .whereIn('tagId', album.tagIds) - .then((ts: any) => ts.map((t: any) => t['tagId'])) : + .from('tags') + .whereIn('id', album.tagIds) + .then((ts: any) => ts.map((t: any) => t['id'])) : (async () => undefined)(); // Wait for the requests to finish. var [oldAlbum, artists, tags, tracks] = await Promise.all([albumIdPromise, artistIdsPromise, tagIdsPromise, trackIdsPromise]);; // Check that we found all objects we need. - if ((!artists || !_.isEqual(artists.sort(), (album.artistIds || []).sort())) || - (!tags || !_.isEqual(tags.sort(), (album.tagIds || []).sort())) || - (!tracks || !_.isEqual(tracks.sort(), (album.trackIds || []).sort())) || + if ((album.artistIds && (!artists || !_.isEqual(artists.sort(), (album.artistIds || []).sort()))) || + (album.tagIds && (!tags || !_.isEqual(tags.sort(), (album.tagIds || []).sort()))) || + (album.trackIds && (!tracks || !_.isEqual(tracks.sort(), (album.trackIds || []).sort()))) || !oldAlbum) { throw makeNotFoundError(); }