implement delete method

This commit is contained in:
Nicolas Lœuillet 2015-02-04 17:54:23 +01:00
parent 889249804f
commit 42a9064620
4 changed files with 42 additions and 1 deletions

View file

@ -177,7 +177,8 @@ class EntryController extends Controller
public function deleteEntryAction(Request $request, Entries $entry)
{
$em = $this->getDoctrine()->getManager();
$em->remove($entry);
$entry->setDeleted(1);
$em->persist($entry);
$em->flush();
$this->get('session')->getFlashBag()->add(

View file

@ -5,6 +5,7 @@ namespace Wallabag\CoreBundle\Controller;
use Nelmio\ApiDocBundle\Annotation\ApiDoc;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
use Wallabag\CoreBundle\Entity\Entries;
use Wallabag\CoreBundle\Entity\Tags;
use Wallabag\CoreBundle\Service\Extractor;
@ -30,6 +31,8 @@ class WallabagRestController extends Controller
*/
public function getEntriesAction(Request $request)
{
// TODO isArchived, isStarred et isDeleted ne doivent pas avoir de valeur par défaut
// TODO Si on ne passe rien, on ne filtre pas sur le statut.
$isArchived = $request->query->get('archive', 0);
$isStarred = $request->query->get('star', 0);
$isDeleted = $request->query->get('delete', 0);
@ -129,6 +132,16 @@ class WallabagRestController extends Controller
*/
public function deleteEntriesAction(Entries $entry)
{
if ($entry->isDeleted()) {
throw new NotFoundHttpException('This entry is already deleted');
}
$em = $this->getDoctrine()->getManager();
$entry->setDeleted(1);
$em->persist($entry);
$em->flush();
return $entry;
}
/**

View file

@ -66,6 +66,13 @@ class Entries
*/
private $userId;
/**
* @var string
*
* @ORM\Column(name="is_deleted", type="decimal", precision=10, scale=0, nullable=true)
*/
private $isDeleted = '0';
/**
* Get id
*
@ -227,4 +234,20 @@ class Entries
{
return $this->userId;
}
/**
* @return string
*/
public function isDeleted()
{
return $this->isDeleted;
}
/**
* @param string $isDeleted
*/
public function setDeleted($isDeleted)
{
$this->isDeleted = $isDeleted;
}
}

View file

@ -25,6 +25,7 @@ class EntriesRepository extends EntityRepository
->setMaxResults($maxResults)
->where('e.isRead = 0')
->andWhere('e.userId =:userId')->setParameter('userId', $userId)
->andWhere('e.isDeleted=0')
->getQuery();
$paginator = new Paginator($qb);
@ -48,6 +49,7 @@ class EntriesRepository extends EntityRepository
->setMaxResults($maxResults)
->where('e.isRead = 1')
->andWhere('e.userId =:userId')->setParameter('userId', $userId)
->andWhere('e.isDeleted=0')
->getQuery();
$paginator = new Paginator($qb);
@ -71,6 +73,7 @@ class EntriesRepository extends EntityRepository
->setMaxResults($maxResults)
->where('e.isFav = 1')
->andWhere('e.userId =:userId')->setParameter('userId', $userId)
->andWhere('e.isDeleted=0')
->getQuery();
$paginator = new Paginator($qb);
@ -86,6 +89,7 @@ class EntriesRepository extends EntityRepository
->where('e.isFav =:isStarred')->setParameter('isStarred', $isStarred)
->andWhere('e.isRead =:isArchived')->setParameter('isArchived', $isArchived)
->andWhere('e.userId =:userId')->setParameter('userId', $userId)
->andWhere('e.isDeleted=0')
->getQuery()
->getResult(Query::HYDRATE_ARRAY);