Example #1
0
 /**
  * @Method({"POST"})
  * @Route(
  *      "/news_load",
  *      name="news_load",
  *      host="{_locale}.{domain}",
  *      defaults={"_locale" = "%locale%", "domain" = "%domain%"},
  *      requirements={"_locale" = "%locale%|en", "domain" = "%domain%"},
  *      condition="request.isXmlHttpRequest()"
  * )
  * @Route(
  *      "/news_load",
  *      name="news_load_default",
  *      host="{domain}",
  *      defaults={"_locale" = "%locale%", "domain" = "%domain%"},
  *      requirements={"domain" = "%domain%"},
  *      condition="request.isXmlHttpRequest()"
  * )
  */
 public function newsLoadAction(Request $request)
 {
     // I really wanted to see that badass loader! XD
     usleep(250000);
     // ---
     if (!$request->request->has('count') || !is_numeric($request->request->get('count')) || empty($request->request->get('count'))) {
         return new Response(json_encode(['isLast' => TRUE]));
     }
     $_manager = $this->getDoctrine()->getManager();
     $newsNumber = $_manager->getRepository('AppBundle:Article')->count();
     $news = $_manager->getRepository('AppBundle:Article')->findBy([], ['publicationDate' => 'DESC'], Article::ARTICLES_PER_LIFT, $request->request->get('count'));
     if (!$news) {
         $response = ['data' => ['isLast' => TRUE], 'code' => 200];
     } else {
         $isLast = $request->request->get('count') + count($news) == $newsNumber;
         $response = ['data' => Article::getTransformedArticles($news, $isLast, $request->getLocale()), 'code' => 200];
     }
     return new Response(json_encode($response['data']), $response['code']);
 }