/** * Returns true if at least one GET collection operation exists for the given resource. * * @param ResourceInterface $resource * * @return bool */ private function hasGetCollectionOperation(ResourceInterface $resource) { foreach ($resource->getCollectionOperations() as $operation) { $methods = $operation->getRoute()->getMethods(); if (empty($methods) || in_array('GET', $methods)) { return true; } } return false; }
/** * {@inheritdoc} * * @return Request[] */ public function generate(ResourceInterface $resource = null) { /** @var OperationInterface[] $operations */ $operations = array_merge($resource->getCollectionOperations(), $resource->getItemOperations()); $requests = []; foreach ($operations as $operation) { $route = $operation->getRoute(); foreach ($route->getMethods() as $method) { $request = new Request(); $request->setResource($resource); $request->setId((string) Uuid::uuid4()); $request->setUrl($this->baseUrl . $route->getPath()); $request->setMethod($method); if (isset($operation->getContext()['hydra:title'])) { $request->setName($operation->getContext()['hydra:title']); } $this->requestParser->parse($request); $requests[] = $request; } } return $requests; }