public function getSectionsAction(Request $request)
{
$em = $this->container->get('em');
$publication = $this->get('newscoop_newscoop.publication_service')->getPublication()->getId();
$issue = null;
$language = null;
if ($request->query->has('language')) {
$language = $em->getRepository('Newscoop\\Entity\\Language')->findOneByCode($request->query->get('language'));
}
if (!$language) {
$language = $this->get('newscoop_newscoop.publication_service')->getPublication()->getLanguage();
}
if ($request->query->has('issue')) {
$issue = $em->getRepository('Newscoop\\Entity\\Issue')->getByPublicationAndNumberAndLanguage($request->query->get('publication', $publication), $request->query->get('issue'), $language)->getOneOrNullResult();
}
$sections = $em->getRepository('Newscoop\\Entity\\Section')->getSections($request->query->get('publication', $publication), $issue, $issue ? $issue->getLanguage() : $language)->getResult();
$paginator = $this->get('newscoop.paginator.paginator_service');
$sections = $paginator->paginate($sections, array('distinct' => false));
return $sections;
}