protected function copyModifiedColumns(BatchJobLog $batchJobLog, BatchJob $batchJob, array $modifiedColumns)
 {
     $shouldSkipInTranslation = array(BatchJobPeer::LOCK_INFO, BatchJobPeer::HISTORY, BatchJobPeer::BATCH_JOB_LOCK_ID, BatchJobPeer::EXECUTION_STATUS);
     foreach ($modifiedColumns as $modifiedColumn) {
         $fieldPosLog = -1;
         try {
             if (in_array($modifiedColumn, $shouldSkipInTranslation)) {
                 if ($modifiedColumn == BatchJobPeer::EXECUTION_STATUS) {
                     $batchJobLog->setAbort($batchJob->getExecutionStatus() == BatchJobExecutionStatus::ABORTED);
                 }
                 continue;
             }
             $fieldName = BatchJobPeer::translateFieldName($modifiedColumn, BasePeer::TYPE_COLNAME, BasePeer::TYPE_FIELDNAME);
             $fieldPosJob = BatchJobPeer::translateFieldName($modifiedColumn, BasePeer::TYPE_COLNAME, BasePeer::TYPE_NUM);
             $fieldPosLog = BatchJobLogPeer::translateFieldName($fieldName, BasePeer::TYPE_FIELDNAME, BasePeer::TYPE_NUM);
         } catch (PropelException $e) {
             KalturaLog::err("Could not set value for BatchJobLog field {$fieldName}, exception thrown: " . $e->getMessage());
         }
         if ($fieldPosLog != -1) {
             $batchJobLog->setByPosition($fieldPosLog, $batchJob->getByPosition($fieldPosJob));
         }
         if ($modifiedColumn == BatchJobPeer::DATA) {
             //set param_1 for the $batchJobLog
             $batchJobData = $batchJob->getData();
             /* @var $batchJobData kBulkUploadJobData */
             $batchJobLog->setParam1($batchJobData->getBulkUploadObjectType());
         }
     }
     return $batchJobLog;
 }
Exemple #2
0
 public static function handleBulkDownloadFinished(BatchJob $dbBatchJob, kBulkDownloadJobData $data)
 {
     if ($dbBatchJob->getExecutionStatus() == BatchJobExecutionStatus::ABORTED) {
         return $dbBatchJob;
     }
     $partner = PartnerPeer::retrieveByPK($dbBatchJob->getPartnerId());
     if (!$partner) {
         KalturaLog::err("Partner id [" . $dbBatchJob->getPartnerId() . "] not found, not sending mail");
         return $dbBatchJob;
     }
     $entryIds = explode(",", $data->getEntryIds());
     $flavorParamsId = $data->getFlavorParamsId();
     $links = array();
     foreach ($entryIds as $entryId) {
         $entry = entryPeer::retrieveByPK($entryId);
         if (is_null($entry)) {
             continue;
         }
         if ($entry->getType() != entryType::MEDIA_CLIP) {
             KalturaLog::info("This entry cannot be downloaded {$entryId}");
             continue;
         }
         $link = $entry->getDownloadAssetUrl($flavorParamsId);
         if (is_null($link)) {
             $link = "Failed to prepare";
         } else {
             $link = '<a href="' . $link . '">Download</a>';
         }
         $links[] = $entry->getName() . " - " . $link;
     }
     $linksHtml = implode("<br />", $links);
     // add mail job
     $jobData = new kMailJobData();
     $jobData->setIsHtml(true);
     $jobData->setMailPriority(kMailJobData::MAIL_PRIORITY_NORMAL);
     $jobData->setStatus(kMailJobData::MAIL_STATUS_PENDING);
     if (count($links) <= 1) {
         $jobData->setMailType(62);
     } else {
         $jobData->setMailType(63);
     }
     $jobData->setFromEmail(kConf::get("batch_download_video_sender_email"));
     $jobData->setFromName(kConf::get("batch_download_video_sender_name"));
     $adminName = $partner->getAdminName();
     $recipientEmail = $partner->getAdminEmail();
     $kuser = kuserPeer::getKuserByPartnerAndUid($dbBatchJob->getPartnerId(), $data->getPuserId());
     if ($kuser) {
         $recipientEmail = $kuser->getEmail();
         $adminName = $kuser->getFullName();
     }
     if (!$adminName) {
         $adminName = $recipientEmail;
     }
     $jobData->setSeparator(self::BULK_DOWNLOAD_EMAIL_PARAMS_SEPARATOR);
     $jobData->setBodyParamsArray(array($adminName, $linksHtml));
     $jobData->setRecipientEmail($recipientEmail);
     $jobData->setSubjectParamsArray(array());
     kJobsManager::addJob($dbBatchJob->createChild(BatchJobType::MAIL, $jobData->getMailType()), $jobData, BatchJobType::MAIL, $jobData->getMailType());
     return $dbBatchJob;
 }