diff --git a/lib/RoutePackage/Media.php b/lib/RoutePackage/Media.php index ad4b763..d6f9ebc 100644 --- a/lib/RoutePackage/Media.php +++ b/lib/RoutePackage/Media.php @@ -506,13 +506,16 @@ public static function handleMediaList($Parameter, array $Route = []): Response $SqlQueryWhere = []; $SqlParameters = []; - if (null !== $Query['filter']['category_id'] && 0 < $Query['filter']['category_id']) { - $MediaCategory = rex_media_category::get($Query['filter']['category_id']); - if (!$MediaCategory) { - return new Response(json_encode(['error' => 'Category not found']), 404); + if (null !== $Query['filter']['category_id']) { + $categoryId = (int) $Query['filter']['category_id']; + if ($categoryId > 0) { + $MediaCategory = rex_media_category::get($categoryId); + if (!$MediaCategory) { + return new Response(json_encode(['error' => 'Category not found']), 404); + } } $SqlQueryWhere[':category_id'] = 'category_id = :category_id'; - $SqlParameters[':category_id'] = $Query['filter']['category_id']; + $SqlParameters[':category_id'] = $categoryId; } if (null !== $Query['filter']['title'] && '' != $Query['filter']['title']) { @@ -632,6 +635,12 @@ public static function handleGetMedia($Parameter, array $Route = []): Response return $permResponse; } + try { + $isInUse = false !== rex_mediapool::mediaIsInUse($Parameter['filename']); + } catch (\Throwable $e) { + $isInUse = false; + } + $Return = [ 'id' => $Media->getId(), 'category_id' => $Media->getCategoryId(), @@ -646,7 +655,7 @@ public static function handleGetMedia($Parameter, array $Route = []): Response 'createuser' => $Media->getCreateUser(), 'updatedate' => $Media->getUpdateDate(), 'updateuser' => $Media->getUpdateUser(), - 'is_in_use' => (false !== rex_mediapool::mediaIsInUse($Parameter['filename']) ? true : false), + 'is_in_use' => $isInUse, 'is_image' => $Media->isImage(), 'file_exists' => $Media->fileExists(), ];