From 24d6e390f0fbf9b0f6c26df6a33e5da2475cc815 Mon Sep 17 00:00:00 2001 From: advplyr Date: Wed, 5 Feb 2025 15:31:57 -0600 Subject: [PATCH] Fix Book/Podcast updateFromRequest to support null values in string fields #3938 --- server/models/Book.js | 2 +- server/models/Podcast.js | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/server/models/Book.js b/server/models/Book.js index 94e017f5..3684608d 100644 --- a/server/models/Book.js +++ b/server/models/Book.js @@ -365,7 +365,7 @@ class Book extends Model { if (payload.metadata) { const metadataStringKeys = ['title', 'subtitle', 'publishedYear', 'publishedDate', 'publisher', 'description', 'isbn', 'asin', 'language'] metadataStringKeys.forEach((key) => { - if (typeof payload.metadata[key] === 'string' && this[key] !== payload.metadata[key]) { + if ((typeof payload.metadata[key] === 'string' || payload.metadata[key] === null) && this[key] !== payload.metadata[key]) { this[key] = payload.metadata[key] || null if (key === 'title') { diff --git a/server/models/Podcast.js b/server/models/Podcast.js index 084911bf..ce47754b 100644 --- a/server/models/Podcast.js +++ b/server/models/Podcast.js @@ -202,8 +202,9 @@ class Podcast extends Model { } else if (key === 'itunesPageUrl') { newKey = 'itunesPageURL' } - if (typeof payload.metadata[key] === 'string' && payload.metadata[key] !== this[newKey]) { - this[newKey] = payload.metadata[key] + if ((typeof payload.metadata[key] === 'string' || payload.metadata[key] === null) && payload.metadata[key] !== this[newKey]) { + this[newKey] = payload.metadata[key] || null + if (key === 'title') { this.titleIgnorePrefix = getTitleIgnorePrefix(this.title) }