mirror of
https://github.com/wallabag/wallabag.git
synced 2024-11-23 17:41:01 +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)
|
||||
{
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$em->remove($entry);
|
||||
$entry->setDeleted(1);
|
||||
$em->persist($entry);
|
||||
$em->flush();
|
||||
|
||||
$this->get('session')->getFlashBag()->add(
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
Loading…
Reference in a new issue