Update library API endpoints to load library items from db

This commit is contained in:
advplyr 2023-08-13 17:45:53 -05:00
parent 3651fffbee
commit 6d6e8613cf
8 changed files with 352 additions and 114 deletions

View file

@ -116,9 +116,9 @@ class Library {
}
update(payload) {
var hasUpdates = false
let hasUpdates = false
var keysToCheck = ['name', 'provider', 'mediaType', 'icon']
const keysToCheck = ['name', 'provider', 'mediaType', 'icon']
keysToCheck.forEach((key) => {
if (payload[key] && payload[key] !== this[key]) {
this[key] = payload[key]
@ -135,18 +135,18 @@ class Library {
hasUpdates = true
}
if (payload.folders) {
var newFolders = payload.folders.filter(f => !f.id)
var removedFolders = this.folders.filter(f => !payload.folders.find(_f => _f.id === f.id))
const newFolders = payload.folders.filter(f => !f.id)
const removedFolders = this.folders.filter(f => !payload.folders.some(_f => _f.id === f.id))
if (removedFolders.length) {
var removedFolderIds = removedFolders.map(f => f.id)
const removedFolderIds = removedFolders.map(f => f.id)
this.folders = this.folders.filter(f => !removedFolderIds.includes(f.id))
}
if (newFolders.length) {
newFolders.forEach((folderData) => {
folderData.libraryId = this.id
var newFolder = new Folder()
const newFolder = new Folder()
newFolder.setData(folderData)
this.folders.push(newFolder)
})