Example #1
0
 /**
  * @group Slow
  * @slowExecutionTime 0.07538 ms
  * @covers \Wikia\Search\Config::getQuery
  */
 public function testGetQuery()
 {
     $config = new \Wikia\Search\Config();
     $this->assertNull($config->getQuery());
     $query = "foo and: bar & baz";
     $config->setQuery($query);
     $this->assertInstanceOf('Wikia\\Search\\Query\\Select', $config->getQuery());
     $this->assertAttributeContains($query, 'rawQuery', $config->getQuery());
     $config = new \Wikia\Search\Config(['query' => 'foo']);
     $this->assertInstanceOf('Wikia\\Search\\Query\\Select', $config->getQuery());
 }
 /**
  * Sets the response based on values set in config
  * @param Wikia\Search\Config $searchConfig
  * @param array $fields that will be returned in items array
  * @param bool $metadata if true, will return also query statistics
  * @throws InvalidParameterApiException if query field in request is missing
  */
 protected function setResponseFromConfig(Wikia\Search\Config $searchConfig)
 {
     if (!$searchConfig->getQuery()->hasTerms()) {
         throw new InvalidParameterApiException('query');
     }
     //Standard Wikia API response with pagination values
     $responseValues = (new Factory())->getFromConfig($searchConfig)->searchAsApi(['pageid' => 'id', 'title', 'url', 'ns', 'article_quality_i' => 'quality'], true);
     if (empty($responseValues['items'])) {
         throw new NotFoundApiException();
     }
     $this->setResponseData($responseValues, ['urlFields' => 'url'], WikiaResponse::CACHE_STANDARD);
 }
Example #3
0
 /**
  * Returns the query used to get these results
  * @return string
  */
 public function getQuery()
 {
     return $this->searchConfig->getQuery()->getQueryForHtml();
 }