import { MusicLibraryItem } from "@db_models" export default async (user_id, item_id, kind) => { if (!user_id) { throw new OperationError(400, "Missing user_id") } if (!item_id) { throw new OperationError(400, "Missing item_id") } if (Array.isArray(item_id)) { const libraryItems = await MusicLibraryItem.find({ user_id: user_id, item_id: { $in: item_id }, kind: kind, }) .lean() .catch(() => { return [] }) return item_id.map((id) => { const libItem = libraryItems.find( (item) => item.item_id.toString() === id.toString(), ) return { item_id: id, liked: !!libItem, created_at: libItem?.created_at, } }) } else { let libraryItem = await MusicLibraryItem.findOne({ user_id: user_id, item_id: item_id, kind: kind, }).catch(() => null) return { liked: !!libraryItem, } } }