mirror of
https://github.com/streamyfin/streamyfin.git
synced 2025-08-20 18:37:18 +02:00
35 lines
1002 B
TypeScript
35 lines
1002 B
TypeScript
import { Api } from "@jellyfin/sdk";
|
|
import { BaseItemDto } from "@jellyfin/sdk/lib/generated-client/models";
|
|
import { getUserLibraryApi } from "@jellyfin/sdk/lib/utils/api";
|
|
|
|
/**
|
|
* Retrieves an item by its ID from the API.
|
|
*
|
|
* @param api - The Jellyfin API instance.
|
|
* @param itemId - The ID of the item to retrieve.
|
|
* @returns The item object or undefined if no item matches the ID.
|
|
*/
|
|
export const getItemById = async (
|
|
api?: Api | null | undefined,
|
|
itemId?: string | null | undefined,
|
|
): Promise<BaseItemDto | undefined> => {
|
|
if (!api || !itemId) {
|
|
return undefined;
|
|
}
|
|
|
|
try {
|
|
const itemData = await getUserLibraryApi(api).getItem({ itemId });
|
|
|
|
const item = itemData.data;
|
|
if (!item) {
|
|
console.error("No items found with the specified ID:", itemId);
|
|
return undefined;
|
|
}
|
|
|
|
return item;
|
|
} catch (error) {
|
|
console.error("Failed to retrieve the item:", error);
|
|
throw new Error(`Failed to retrieve the item due to an error: ${error}`);
|
|
}
|
|
};
|