public function getWikiData($wikiId, $langCode)
 {
     $visualization = new CityVisualization();
     $wikiData = $visualization->getWikiDataForVisualization($wikiId, $langCode);
     return $this->sanitizeWikiData($wikiData);
 }
 protected function checkWikiStatus($wikiId, $langCode)
 {
     $wikiStatus = ['hasImagesRejected' => false, 'hasImagesInReview' => false, 'isApproved' => false, 'isAutoApproved' => false];
     WikiaLogger::instance()->debug("SpecialPromote", ['method' => __METHOD__, 'wikiId' => $wikiId, 'lang' => $langCode]);
     $visualization = new CityVisualization();
     $wikiDataVisualization = $visualization->getWikiDataForVisualization($wikiId, $langCode);
     $mainImage = $this->getMainImage();
     $additionalImages = $this->getAdditionalImages();
     if (!empty($wikiDataVisualization['main_image'])) {
         $wikiStatus['isApproved'] = true;
     }
     $imageStatuses = array();
     if ($mainImage) {
         $imageStatuses[] = $mainImage['review_status'];
     }
     if ($additionalImages) {
         foreach ($additionalImages as $image) {
             $imageStatuses[] = $image['review_status'];
         }
     }
     foreach ($imageStatuses as $status) {
         switch ($status) {
             case ImageReviewStatuses::STATE_REJECTED:
                 $wikiStatus['hasImagesRejected'] = true;
                 break;
             case ImageReviewStatuses::STATE_UNREVIEWED:
             case ImageReviewStatuses::STATE_IN_REVIEW:
             case ImageReviewStatuses::STATE_QUESTIONABLE:
             case ImageReviewStatuses::STATE_QUESTIONABLE_IN_REVIEW:
                 $wikiStatus['hasImagesInReview'] = true;
                 break;
             case ImageReviewStatuses::STATE_AUTO_APPROVED:
                 $wikiStatus['isAutoApproved'] = true;
                 break;
         }
     }
     WikiaLogger::instance()->debug("SpecialPromote", ['method' => __METHOD__, "imageStatuses" => $imageStatuses]);
     return $wikiStatus;
 }
 /**
  * Add wiki (wiki id) to selected collection
  *
  * @param $cityId
  * @param $collectionId
  */
 public function addWikiToCollection($collectionId, $cityId)
 {
     $collection = $this->getById($collectionId);
     $cityVisualization = new CityVisualization();
     $wikiData = $cityVisualization->getWikiDataForVisualization($cityId, $collection['lang_code']);
     if (empty($wikiData['main_image'])) {
         $status = ['value' => false, 'message' => wfMessage('manage-wikia-home-collections-add-failure-image', $wikiData['name'])->text()];
     } else {
         if (!$this->checkWikiCollectionExists($collectionId, $cityId)) {
             $db = wfGetDB(DB_MASTER, array(), $this->wg->ExternalSharedDB);
             $insertData = ['collection_id' => $collectionId, 'city_id' => $cityId];
             $db->insert(self::COLLECTIONS_CV_TABLE, $insertData);
             $db->commit();
             $this->clearCache($collection['lang_code']);
             $this->clearWikiCache($cityId);
             $status = ['value' => true, 'message' => wfMessage('manage-wikia-home-collections-add-success')->plain()];
         } else {
             $status = ['value' => false, 'message' => wfMessage('manage-wikia-home-collections-add-failure-already-exists')->plain()];
         }
     }
     return $status;
 }