Entity/DefaultDeleter.php
<?php
/**
* @copyright 2014 Integ S.A.
* @license http://opensource.org/licenses/MIT The MIT License (MIT)
* @author Javier Lorenzana <javier.lorenzana@gointegro.com>
*/
namespace GoIntegro\Hateoas\Entity;
// JSON-API.
use GoIntegro\Hateoas\JsonApi\ResourceEntityInterface;
// ORM.
use Doctrine\ORM\EntityManagerInterface,
Doctrine\ORM\ORMException;
class DefaultDeleter implements DeleterInterface
{
const ERROR_COULD_NOT_DELETE = "Could not delete the resource.";
/**
* @var EntityManagerInterface
*/
private $em;
/**
* @param EntityManagerInterface $em
*/
public function __construct(EntityManagerInterface $em)
{
$this->em = $em;
}
/**
* @param ResourceEntityInterface $entity
*/
public function delete(ResourceEntityInterface $entity)
{
try {
$this->em->remove($entity);
$this->em->flush();
} catch (ORMException $e) {
throw new PersistenceException(self::ERROR_COULD_NOT_DELETE);
}
}
}