/** * 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); }
/** * 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]; }