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) public function deleteEntryAction(Request $request, Entries $entry)
{ {
$em = $this->getDoctrine()->getManager(); $em = $this->getDoctrine()->getManager();
$em->remove($entry); $entry->setDeleted(1);
$em->persist($entry);
$em->flush(); $em->flush();
$this->get('session')->getFlashBag()->add( $this->get('session')->getFlashBag()->add(

View file

@ -5,6 +5,7 @@ namespace Wallabag\CoreBundle\Controller;
use Nelmio\ApiDocBundle\Annotation\ApiDoc; use Nelmio\ApiDocBundle\Annotation\ApiDoc;
use Symfony\Bundle\FrameworkBundle\Controller\Controller; use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
use Wallabag\CoreBundle\Entity\Entries; use Wallabag\CoreBundle\Entity\Entries;
use Wallabag\CoreBundle\Entity\Tags; use Wallabag\CoreBundle\Entity\Tags;
use Wallabag\CoreBundle\Service\Extractor; use Wallabag\CoreBundle\Service\Extractor;
@ -30,6 +31,8 @@ class WallabagRestController extends Controller
*/ */
public function getEntriesAction(Request $request) 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); $isArchived = $request->query->get('archive', 0);
$isStarred = $request->query->get('star', 0); $isStarred = $request->query->get('star', 0);
$isDeleted = $request->query->get('delete', 0); $isDeleted = $request->query->get('delete', 0);
@ -129,6 +132,16 @@ class WallabagRestController extends Controller
*/ */
public function deleteEntriesAction(Entries $entry) 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; private $userId;
/**
* @var string
*
* @ORM\Column(name="is_deleted", type="decimal", precision=10, scale=0, nullable=true)
*/
private $isDeleted = '0';
/** /**
* Get id * Get id
* *
@ -227,4 +234,20 @@ class Entries
{ {
return $this->userId; 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) ->setMaxResults($maxResults)
->where('e.isRead = 0') ->where('e.isRead = 0')
->andWhere('e.userId =:userId')->setParameter('userId', $userId) ->andWhere('e.userId =:userId')->setParameter('userId', $userId)
->andWhere('e.isDeleted=0')
->getQuery(); ->getQuery();
$paginator = new Paginator($qb); $paginator = new Paginator($qb);
@ -48,6 +49,7 @@ class EntriesRepository extends EntityRepository
->setMaxResults($maxResults) ->setMaxResults($maxResults)
->where('e.isRead = 1') ->where('e.isRead = 1')
->andWhere('e.userId =:userId')->setParameter('userId', $userId) ->andWhere('e.userId =:userId')->setParameter('userId', $userId)
->andWhere('e.isDeleted=0')
->getQuery(); ->getQuery();
$paginator = new Paginator($qb); $paginator = new Paginator($qb);
@ -71,6 +73,7 @@ class EntriesRepository extends EntityRepository
->setMaxResults($maxResults) ->setMaxResults($maxResults)
->where('e.isFav = 1') ->where('e.isFav = 1')
->andWhere('e.userId =:userId')->setParameter('userId', $userId) ->andWhere('e.userId =:userId')->setParameter('userId', $userId)
->andWhere('e.isDeleted=0')
->getQuery(); ->getQuery();
$paginator = new Paginator($qb); $paginator = new Paginator($qb);
@ -86,6 +89,7 @@ class EntriesRepository extends EntityRepository
->where('e.isFav =:isStarred')->setParameter('isStarred', $isStarred) ->where('e.isFav =:isStarred')->setParameter('isStarred', $isStarred)
->andWhere('e.isRead =:isArchived')->setParameter('isArchived', $isArchived) ->andWhere('e.isRead =:isArchived')->setParameter('isArchived', $isArchived)
->andWhere('e.userId =:userId')->setParameter('userId', $userId) ->andWhere('e.userId =:userId')->setParameter('userId', $userId)
->andWhere('e.isDeleted=0')
->getQuery() ->getQuery()
->getResult(Query::HYDRATE_ARRAY); ->getResult(Query::HYDRATE_ARRAY);