Imbo\Resource\Metadata::validateMetadata PHP Method

validateMetadata() public method

Validate metadata found in the request body
public validateMetadata ( Imbo\EventManager\EventInterface $event )
$event Imbo\EventManager\EventInterface The event instance
    public function validateMetadata(EventInterface $event)
    {
        $request = $event->getRequest();
        $metadata = $request->getContent();
        if (empty($metadata)) {
            throw new InvalidArgumentException('Missing JSON data', 400);
        } else {
            $metadata = json_decode($metadata, true);
            if ($metadata === null) {
                throw new InvalidArgumentException('Invalid JSON data', 400);
            }
            foreach (array_keys($metadata) as $key) {
                if (strpos($key, '.') === false) {
                    continue;
                }
                throw new InvalidArgumentException('Invalid metadata. Dot characters (\'.\') are not allowed in metadata keys', 400);
            }
        }
    }

Usage Example

Beispiel #1
0
 /**
  * @covers Imbo\Resource\Metadata::validateMetadata
  */
 public function testAllowsValidJsonData()
 {
     $this->request->expects($this->once())->method('getContent')->will($this->returnValue('{"foo":"bar"}'));
     $this->resource->validateMetadata($this->event);
 }