/**
  * Update the search and request objects
  *
  * @param $command
  */
 public function handle(SaveSearchRequestCommand $command)
 {
     $search = $this->searchRepository->findByQuery($command->queryString());
     if (!$search) {
         // Create a new search object
         $search = new Search();
         $search->setQuery($command->queryString());
     }
     $search->increase();
     // Create the new search request
     $searchRequest = new Request();
     $searchRequest->setSearch($search);
     // Save the changes to the database
     $this->searchRepository->save($search);
     $this->requestRepository->save($searchRequest);
     // Raise the SearchRequestWasPosted event
     $event = new SearchRequestWasPosted($searchRequest);
     $this->eventRecorder->record($event);
 }
示例#2
0
 /**
  * Get all search requests
  *
  * @ApiDoc(
  * requirements={
  *      {
  *          "name"="_format",
  *          "dataType"="string",
  *          "requirement"="json|xml",
  *          "description"="Response format"
  *      }
  *  },
  * )
  *
  * @return array
  * @View()
  */
 public function getSearchesAction()
 {
     $searches = $this->requestRepository->findAllOrderByDate('DESC');
     return ['searches' => $searches];
 }