/**
  * @ApiDoc(
  *  description="New Batch of Reviews",
  *  statusCodes={201="Batch of Reviews"},
  *  section="Review",
  *  parameters={
  *      {"name"="restaurants", "dataType"="integer", "required"=true }
  * })
  * @Route("/api/reviews/batch")
  * @Method({"POST"})
  * @return View
  */
 public function batchInsertAction()
 {
     $user = $this->getUser();
     $positions = array();
     $request = $this->requestStack->getCurrentRequest();
     $ids = $request->request->get('restaurants');
     $restaurants = $this->restaurantRepository->getByIds($ids);
     $reviews = array();
     /** @var Restaurant $restaurant */
     foreach ($restaurants as $restaurant) {
         if (null === $restaurant->getGeoname() || null === $restaurant->getCuisine()) {
             continue;
         }
         if (isset($positions[$restaurant->getRankingKey()])) {
             $positions[$restaurant->getRankingKey()]++;
         } else {
             $positions[$restaurant->getRankingKey()] = 1;
         }
         $review = new Review();
         $review->setGeoname($restaurant->getGeoname());
         $review->setCost($restaurant->getAverageCost());
         $review->setCuisine($restaurant->getCuisine());
         $review->setPosition($positions[$restaurant->getRankingKey()]);
         $review->setUser($user);
         $review->setComment('');
         $review->setRestaurant($restaurant);
         $reviews[] = $review;
         $this->validate($review);
         $user->incrementReviewsCount();
         $this->entityManager->persist($review);
         $this->cacheManager->invalidateOnInsert($review);
     }
     $this->entityManager->flush();
     return $this->view(array('reviews' => $reviews), 201);
 }