/** * @param array $fieldArray * @throws XMLImportDBException */ public static function updateMdd( $fieldArray ) { if ( empty( $fieldArray ) ) throw new XMLImportDBException( "Empty field array : no data extracted from XML file" ); XMLImportMonitor::log( 'Update database', 'info' ); //Begin transaction XMLImportDB::beginQuery(); //Save Article $articleConditions = self::saveDB( 'article', $fieldArray ); self::buildArticleRelatedContent( $articleConditions, $fieldArray ); self::buildArticleTaxonomy( $articleConditions, $fieldArray ); self::buildTranslationsRequest( $articleConditions, $fieldArray ); XMLImportMonitor::setMonitorData( 'article_id', $articleConditions['id'] ); //Commit transaction XMLImportDB::commitQuery(); }
/** * @param string $file * @param string $publisher * @param \Exception $exception * @param int $errorLevel * @throws Exception */ public function triggerException( $file, $publisher, $exception, $errorLevel ) { XMLImportMonitor::log( $exception->getMessage(), 'error' ); XMLImportMonitor::setMonitorData( 'status_xml_mdd', $errorLevel ); XMLImportMonitor::setMonitorData( 'status_mdd_ez', -1 ); // get number of tries $nbOfTry = XMLImportMonitor::getMonitorData( 'nb_of_retry' ); // if number of tries >= max_attemps if( $nbOfTry <= XMLImportMonitor::MAX_ATTEMPTS ) { // else put that article in quarantaine and send an alert $this->appendAlert($publisher, $file, $exception->getMessage()); $this->fileHandler->quarantaineFiles( $publisher, $file ); } throw new Exception( "F : $file - P : $publisher | " . $exception->getMessage() ); }
/** * @param string $publisher * @param string $xmlFile * @param array $blobedFiles */ public function archiveFiles( $publisher, $xmlFile, $blobedFiles ) { $this->buildArchiveFolder( $publisher ); $rootImport = $this->importINI->variable( 'XMLImportSettings', 'RootImport' ); $publisherFolder = "$rootImport/{$this->rootImportFolder}/$publisher"; $publisherArchiveFolder = "$publisherFolder/archived"; self::handleModeUATFile( "$publisherFolder/$xmlFile", "$publisherArchiveFolder/$xmlFile" ); XMLImportMonitor::log( "Archive xml file : $publisherFolder/$xmlFile => $publisherArchiveFolder/$xmlFile", 'info' ); XMLImportMonitor::setMonitorData('nb_of_retry', 0); foreach ( $blobedFiles as $blobedFile ) { $tmpFile = str_replace( "$publisherFolder/", '', $blobedFile ); if ( $tmpFile == $blobedFile ) { XMLImportMonitor::log( "Unarchivable blobed file : $blobedFile", 'warning' ); } else { self::handleModeUATFile( "$publisherFolder/$tmpFile", "$publisherArchiveFolder/$tmpFile" ); XMLImportMonitor::log( "Archive blobed file : $publisherFolder/$tmpFile => $publisherArchiveFolder/$tmpFile", 'info' ); } } }