Example #1
0
 /**
  * @param int $from
  * @param int $size
  * @return SearchResultSlice
  */
 public function getDrinks($from = 0, $size = 20)
 {
     $criteria = new SearchEngine\Criteria($from);
     $criteria->changeSize($size);
     $criteria->updateRequiredTaste((new TasteBuilder())->sweet()->buildTaste());
     return $this->searchEngine->search($criteria);
 }
Example #2
0
 public function similarRecipesAction($slug, $size)
 {
     $recipe = $this->get('my_drinks.recipes')->findBySlug($slug);
     if (is_null($recipe)) {
         throw new NotFoundHttpException();
     }
     $criteria = new Criteria();
     $criteria->similarTo($recipe->getName());
     $criteria->changeSize((int) $size);
     $results = $this->get('my_drinks.search_engine')->search($criteria);
     return $this->render(':recipe:similarRecipes.html.twig', ['recipe' => $recipe, 'results' => $results]);
 }
Example #3
0
 public function indexAction(Request $request)
 {
     $form = $this->get('form.factory')->createNamed('', new SearchType());
     $form->handleRequest($request);
     $criteria = new Criteria((int) $request->query->get(self::PARAM_START, 0));
     $criteria->changeSize(20);
     if ($form->isValid()) {
         $criteria->decorate(new SearchCriteriaDecorator($form));
     } else {
         if ($form->isSubmitted()) {
             $ingredients = $form->get('ingredients')->getData();
             $criteria->mustContainIngredients(is_null($ingredients) ? [] : $ingredients);
         }
     }
     $drinks = $this->get('my_drinks.search_engine')->search($criteria);
     return $this->render('search/index.html.twig', ['results' => null, 'drinks' => $drinks]);
 }