/**
  * @ApiDoc(
  *  description="Expertise list",
  *  statusCodes={200="Expertise"},
  *  section="Expertise",
  *  filters={
  *      {"name"="user", "dataType"="integer", "required"=true},
  *      {"name"="wish", "dataType"="boolean", "required"=false},
  *      {"name"="groupBy", "dataType"="string", "required"=false, "pattern"="cuisine|geoname"}
  *  })
  * @Route("/api/expertise")
  * @Route("/public-api/expertise")
  * @Method({"GET"})
  * @throws BadRequestException
  * @Cache(maxage="+1 day", public=true)
  * @return View
  */
 public function getAllAction()
 {
     $request = $this->requestStack->getCurrentRequest();
     $user = (int) $this->requestStack->getCurrentRequest()->query->get('user');
     $groupBy = $this->requestStack->getCurrentRequest()->query->get('groupBy');
     $wish = (bool) $this->requestStack->getCurrentRequest()->query->get('wish');
     if (!isset($user)) {
         throw new BadRequestException(array('exception.bad_request.missing_parameters'));
     }
     if ($wish) {
         return $this->getWishList();
     }
     $expertiseList = $this->reviewRepository->getExpertiseByUser($user, $groupBy);
     $this->cacheManager->tagController($request, CacheTag::REVIEW);
     return $this->view(array('expertise' => $expertiseList));
 }