From 967b131834db07a3a177f1ed2d6d1f6930c219fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20Miko=C5=82ajczuk?= Date: Sun, 13 Dec 2015 19:29:13 +0000 Subject: [PATCH] add support to filter articles by section in /articles api resource --- .../Newscoop/Entity/Repository/ArticleRepository.php | 10 +++++++++- .../GimmeBundle/Controller/ArticlesController.php | 5 +++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/newscoop/library/Newscoop/Entity/Repository/ArticleRepository.php b/newscoop/library/Newscoop/Entity/Repository/ArticleRepository.php index 84c702b419..6e984062f6 100755 --- a/newscoop/library/Newscoop/Entity/Repository/ArticleRepository.php +++ b/newscoop/library/Newscoop/Entity/Repository/ArticleRepository.php @@ -29,7 +29,7 @@ class ArticleRepository extends DatatableSource implements RepositoryInterface * * @return \Doctrine\ORM\Query */ - public function getArticles($publication, $type = null, $language = null, $issue = null) + public function getArticles($publication, $type = null, $language = null, $issue = null, $section = null) { $em = $this->getEntityManager(); @@ -68,6 +68,14 @@ public function getArticles($publication, $type = null, $language = null, $issue ->setParameter('issue', $issue); } + if ($section) { + $countQueryBuilder->andWhere('a.sectionId = :section') + ->setParameter('section', $section); + + $queryBuilder->andWhere('a.sectionId = :section') + ->setParameter('section', $section); + } + if ($language) { $languageId = $em->getRepository('Newscoop\Entity\Language') ->findOneByCode($language); diff --git a/newscoop/src/Newscoop/GimmeBundle/Controller/ArticlesController.php b/newscoop/src/Newscoop/GimmeBundle/Controller/ArticlesController.php index 518f4f9431..e21f193330 100644 --- a/newscoop/src/Newscoop/GimmeBundle/Controller/ArticlesController.php +++ b/newscoop/src/Newscoop/GimmeBundle/Controller/ArticlesController.php @@ -201,7 +201,8 @@ private function postAddUpdate($article) * parameters={ * {"name"="type", "dataType"="integer", "required"=true, "description"="Article type"}, * {"name"="language", "dataType"="string", "required"=false, "description"="Language code"}, - * {"name"="issue", "dataType"="string", "required"=false, "description"="Issue number"} + * {"name"="issue", "dataType"="string", "required"=false, "description"="Issue number"}, + * {"name"="section", "dataType"="string", "required"=false, "description"="Section number"} * } * ) * @@ -218,7 +219,7 @@ public function getArticlesAction(Request $request) $publication = $this->get('newscoop_newscoop.publication_service')->getPublication()->getId(); $articles = $em->getRepository('Newscoop\Entity\Article') - ->getArticles($publication, $request->get('type', null), $request->get('language', null), $request->get('issue', null)); + ->getArticles($publication, $request->get('type', null), $request->get('language', null), $request->get('issue', null), $request->get('section', null)); $paginator = $this->get('newscoop.paginator.paginator_service'); $articles = $paginator->paginate($articles, array(