Example #1
0
 /**
  * @param String $message
  * @param String $input
  * @param String $expected
  *
  * @dataProvider removeBracketsDataProvider
  */
 public function testRemoveBrackets($message, $input, $expected)
 {
     $this->assertEquals($expected, LyricsUtils::removeBrackets($input), $message);
 }
 /**
  * @desc Gets a song from Solr index if exists
  *
  * @param LyricsApiSearchParams $searchParams
  *
  * @return null|stdClass
  */
 public function getSong(LyricsApiSearchParams $searchParams)
 {
     $query = $this->client->createSelect();
     $lowerCaseSongName = $searchParams->getLowerCaseField(LyricsApiController::PARAM_SONG);
     $queryText = 'type:%1% AND artist_name_lc:%P2% AND ( song_name_lc:%P3% OR song_name_lc:%P4% )';
     $params = [LyricsUtils::TYPE_SONG, $searchParams->getLowerCaseField(LyricsApiController::PARAM_ARTIST), $lowerCaseSongName, LyricsUtils::removeBrackets($lowerCaseSongName)];
     $query->setQuery($queryText, $params);
     $query->setFields(['artist_name', 'album_id', 'album_name', 'song_name', 'image', 'itunes', self::INDEX_FIELD_NAME_LYRICS]);
     $query->setStart(0)->setRows(1);
     $solrSong = $this->getFirstResult($this->client->select($query));
     if (is_null($solrSong)) {
         return null;
     }
     return $this->getOutputSong($solrSong);
 }