getCollectionOperations() public method

Gets collection operations.
public getCollectionOperations ( ) : array | null
return array | null
Esempio n. 1
0
 public function testValueObject()
 {
     $metadata = new ResourceMetadata('shortName', 'desc', 'http://example.com/foo', ['iop1' => ['foo' => 'a'], 'iop2' => ['bar' => 'b']], ['cop1' => ['foo' => 'c'], 'cop2' => ['bar' => 'd']], ['baz' => 'bar']);
     $this->assertEquals('shortName', $metadata->getShortName());
     $this->assertEquals('desc', $metadata->getDescription());
     $this->assertEquals('http://example.com/foo', $metadata->getIri());
     $this->assertEquals(['iop1' => ['foo' => 'a'], 'iop2' => ['bar' => 'b']], $metadata->getItemOperations());
     $this->assertEquals('a', $metadata->getItemOperationAttribute('iop1', 'foo', 'z', false));
     $this->assertEquals('bar', $metadata->getItemOperationAttribute('iop1', 'baz', 'z', true));
     $this->assertEquals('z', $metadata->getItemOperationAttribute('iop1', 'notExist', 'z', true));
     $this->assertEquals('z', $metadata->getItemOperationAttribute('notExist', 'notExist', 'z', true));
     $this->assertEquals(['cop1' => ['foo' => 'c'], 'cop2' => ['bar' => 'd']], $metadata->getCollectionOperations());
     $this->assertEquals('c', $metadata->getCollectionOperationAttribute('cop1', 'foo', 'z', false));
     $this->assertEquals('bar', $metadata->getCollectionOperationAttribute('cop1', 'baz', 'z', true));
     $this->assertEquals('z', $metadata->getCollectionOperationAttribute('cop1', 'notExist', 'z', true));
     $this->assertEquals('z', $metadata->getCollectionOperationAttribute('notExist', 'notExist', 'z', true));
     $this->assertEquals(['baz' => 'bar'], $metadata->getAttributes());
     $this->assertEquals('bar', $metadata->getAttribute('baz'));
     $this->assertEquals('z', $metadata->getAttribute('notExist', 'z'));
     $newMetadata = $metadata->withShortName('name');
     $this->assertNotSame($metadata, $newMetadata);
     $this->assertEquals('name', $newMetadata->getShortName());
     $newMetadata = $metadata->withDescription('description');
     $this->assertNotSame($metadata, $newMetadata);
     $this->assertEquals('description', $newMetadata->getDescription());
     $newMetadata = $metadata->withIri('foo:bar');
     $this->assertNotSame($metadata, $newMetadata);
     $this->assertEquals('foo:bar', $newMetadata->getIri());
     $newMetadata = $metadata->withItemOperations(['a' => ['b' => 'c']]);
     $this->assertNotSame($metadata, $newMetadata);
     $this->assertEquals(['a' => ['b' => 'c']], $newMetadata->getItemOperations());
     $newMetadata = $metadata->withCollectionOperations(['a' => ['b' => 'c']]);
     $this->assertNotSame($metadata, $newMetadata);
     $this->assertEquals(['a' => ['b' => 'c']], $newMetadata->getCollectionOperations());
     $newMetadata = $metadata->withAttributes(['a' => ['b' => 'c']]);
     $this->assertNotSame($metadata, $newMetadata);
     $this->assertEquals(['a' => ['b' => 'c']], $newMetadata->getAttributes());
 }
 /**
  * Gets Hydra operations.
  *
  * @param string           $resourceClass
  * @param ResourceMetadata $resourceMetadata
  * @param string           $prefixedShortName
  * @param bool             $collection
  *
  * @return array
  */
 private function getHydraOperations(string $resourceClass, ResourceMetadata $resourceMetadata, string $prefixedShortName, bool $collection) : array
 {
     if (null === ($operations = $collection ? $resourceMetadata->getCollectionOperations() : $resourceMetadata->getItemOperations())) {
         return [];
     }
     $hydraOperations = [];
     foreach ($operations as $operationName => $operation) {
         $hydraOperations[] = $this->getHydraOperation($resourceClass, $resourceMetadata, $operationName, $operation, $prefixedShortName, $collection);
     }
     return $hydraOperations;
 }
 /**
  * Updates the list of entries in the paths collection.
  *
  * @param \ArrayObject     $paths
  * @param \ArrayObject     $definitions
  * @param string           $resourceClass
  * @param string           $resourceShortName
  * @param ResourceMetadata $resourceMetadata
  * @param array            $mimeTypes
  * @param bool             $collection
  */
 private function addPaths(\ArrayObject $paths, \ArrayObject $definitions, string $resourceClass, string $resourceShortName, ResourceMetadata $resourceMetadata, array $mimeTypes, bool $collection)
 {
     if (null === ($operations = $collection ? $resourceMetadata->getCollectionOperations() : $resourceMetadata->getItemOperations())) {
         return;
     }
     foreach ($operations as $operationName => $operation) {
         $path = $this->getPath($resourceShortName, $operation, $collection);
         $method = $collection ? $this->operationMethodResolver->getCollectionOperationMethod($resourceClass, $operationName) : $this->operationMethodResolver->getItemOperationMethod($resourceClass, $operationName);
         $paths[$path][strtolower($method)] = $this->getPathOperation($operationName, $operation, $method, $collection, $resourceClass, $resourceMetadata, $mimeTypes, $definitions);
     }
 }