Exemple #1
0
 public function revertAudit(AuditEntry $audit)
 {
     $entity = $this->em->getRepository($audit->getResourceName())->find($audit->getResourceId());
     $getter = 'get' . ucfirst($audit->getFieldName());
     $setter = 'set' . ucfirst($audit->getFieldName());
     $entityValue = $entity->{$getter}();
     if (!is_object($entityValue)) {
         if ($audit->getNewValue() == $entityValue) {
             $entity->{$setter}($audit->getOldValue());
         } else {
             throw EntityInWrongStateException;
         }
     } elseif (!$entityValue instanceof Collection) {
         $oldValue = $this->getEntityRepository($entityValue)->find($audit->getOldValue());
         $newValue = $this->getEntityRepository($entityValue)->find($audit->getNewValue());
         if ($newValue === $entityValue) {
             $entity->{$setter}($oldValue);
         } else {
             throw EntityInWrongStateException;
         }
     } else {
     }
 }