private function getExistingTitles(array $suggestions)
 {
     $params = $this->extractRequestParams();
     $titles = array();
     $sourceLanguage = $params['from'];
     $targetLanguage = $params['to'];
     $domain = SiteMapper::getDomainCode($sourceLanguage);
     $existingTitles = array();
     foreach ($suggestions as $suggestion) {
         $titles[] = $suggestion->getTitle()->getPrefixedText();
     }
     $params = array('action' => 'query', 'format' => 'json', 'titles' => implode('|', $titles), 'prop' => 'langlinks', 'lllimit' => $params['limit'], 'lllang' => SiteMapper::getDomainCode($targetLanguage), 'redirects' => true);
     $apiUrl = SiteMapper::getApiURL($sourceLanguage, $params);
     $json = Http::get($apiUrl);
     $response = FormatJson::decode($json, true);
     if (!isset($response['query']) || !isset($response['query']['pages'])) {
         // Something wrong with response. Should we throw exception?
         return $existingTitles;
     }
     $pages = $response['query']['pages'];
     foreach ($pages as $page) {
         if (isset($page['langlinks'])) {
             // API returns titles in PrefixedText format
             $existingTitles[] = $page['title'];
         }
     }
     return $existingTitles;
 }