diff --git a/lib/Controllers/DefaultController.php b/lib/Controllers/DefaultController.php index cda1ea9..870f648 100644 --- a/lib/Controllers/DefaultController.php +++ b/lib/Controllers/DefaultController.php @@ -807,19 +807,18 @@ class DefaultController extends ControllerAbstract { private function nodeList(string $tenantId, string $userId, array $data, int $version, string $transaction): StreamedNdJsonResponse { - if (isset($data['sources'])) { - if (!is_array($data['sources'])) { - throw new InvalidArgumentException(self::ERR_INVALID_SOURCES); - } + if (!isset($data['sources'])) { + throw new InvalidArgumentException(self::ERR_MISSING_SOURCES); + } + if (!is_array($data['sources'])) { + throw new InvalidArgumentException(self::ERR_INVALID_SOURCES); + } - $sources = ResourceIdentifiers::fromArray($data['sources']); - foreach ($sources as $source) { - if (!$source instanceof ServiceIdentifier && !$source instanceof CollectionIdentifier) { - throw new InvalidArgumentException('Invalid parameter: sources must contain provider:service or provider:service:collection identifiers'); - } + $sources = ResourceIdentifiers::fromArray($data['sources']); + foreach ($sources as $source) { + if ($source instanceof EntityIdentifier || (!$source instanceof ServiceIdentifier && !$source instanceof CollectionIdentifier)) { + throw new InvalidArgumentException('Invalid parameter: sources must contain provider:service or provider:service:collection identifiers'); } - } else { - $sources = null; } $filter = $data['filter'] ?? null;