public function handleEntityUpdate(AbstractEntity $entity, array $allowedProperties, array $data)
 {
     $data = ArrayUtils::filterKeys($data, $allowedProperties);
     $repository = $this->knit->getRepository($entity->__getClass());
     try {
         $entity->updateWithData($data);
         $repository->save($entity);
     } catch (DataValidationFailedException $e) {
         $errors = array();
         foreach ($e->getErrors() as $error) {
             $errors[$error->getProperty()] = $error->getFailedValidators();
         }
         return array($this->httpCodeKey => 400, 'errors' => $errors);
     }
     return array();
 }
예제 #2
0
 /**
  * @dataProvider provideFilterKeysArrays
  */
 public function testFilterKeys(array $array, array $allowed)
 {
     $filtered = ArrayUtils::filterKeys($array, $allowed);
     foreach ($array as $key => $val) {
         if (in_array($key, $allowed)) {
             $this->assertArrayHasKey($key, $filtered);
         } else {
             $this->assertArrayNotHasKey($key, $filtered);
         }
     }
 }