mirror of
https://github.com/wallabag/wallabag.git
synced 2024-11-27 11:31:05 +00:00
implement delete method
This commit is contained in:
parent
889249804f
commit
42a9064620
4 changed files with 42 additions and 1 deletions
|
@ -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(
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue