public static function dependsOn()
 {
     $bulkUploadXmlVersion = new KalturaVersion(self::XML_BULK_UPLOAD_PLUGIN_VERSION_MAJOR, self::XML_BULK_UPLOAD_PLUGIN_VERSION_MINOR, self::XML_BULK_UPLOAD_PLUGIN_VERSION_BUILD);
     $bulkUploadXmlDependency = new KalturaDependency(BulkUploadXmlPlugin::getPluginName(), $bulkUploadXmlVersion);
     $dropFolderDependency = new KalturaDependency(DropFolderPlugin::getPluginName());
     return array($bulkUploadXmlDependency, $dropFolderDependency);
 }
 public function initService($serviceId, $serviceName, $actionName)
 {
     parent::initService($serviceId, $serviceName, $actionName);
     if (!DropFolderPlugin::isAllowedPartner($this->getPartnerId())) {
         throw new KalturaAPIException(KalturaErrors::SERVICE_FORBIDDEN, $this->serviceName . '->' . $this->actionName);
     }
     myPartnerUtils::addPartnerToCriteria(new DropFolderPeer(), $this->getPartnerId(), $this->private_partner_data, $this->partnerGroup());
     myPartnerUtils::addPartnerToCriteria(new DropFolderFilePeer(), $this->getPartnerId(), $this->private_partner_data, $this->partnerGroup());
 }
Пример #3
0
 public function initService($serviceId, $serviceName, $actionName)
 {
     parent::initService($serviceId, $serviceName, $actionName);
     if (!DropFolderPlugin::isAllowedPartner($this->getPartnerId())) {
         throw new KalturaAPIException(KalturaErrors::FEATURE_FORBIDDEN, DropFolderPlugin::PLUGIN_NAME);
     }
     $this->applyPartnerFilterForClass('DropFolder');
     $this->applyPartnerFilterForClass('DropFolderFile');
 }
Пример #4
0
 /**
  * Allows you to add a new KalturaDropFolder object
  * 
  * @action add
  * @param KalturaDropFolder $dropFolder
  * @return KalturaDropFolder
  * 
  * @throws KalturaErrors::PROPERTY_VALIDATION_CANNOT_BE_NULL
  * @throws KalturaErrors::INGESTION_PROFILE_ID_NOT_FOUND
  * @throws KalturaDropFolderErrors::DROP_FOLDER_ALREADY_EXISTS
  * @throws KalturaErrors::DATA_CENTER_ID_NOT_FOUND
  */
 public function addAction(KalturaDropFolder $dropFolder)
 {
     // check for required parameters
     $dropFolder->validatePropertyNotNull('name');
     $dropFolder->validatePropertyNotNull('status');
     $dropFolder->validatePropertyNotNull('type');
     $dropFolder->validatePropertyNotNull('dc');
     $dropFolder->validatePropertyNotNull('path');
     $dropFolder->validatePropertyNotNull('partnerId');
     $dropFolder->validatePropertyMinValue('fileSizeCheckInterval', 0, true);
     $dropFolder->validatePropertyMinValue('autoFileDeleteDays', 0, true);
     $dropFolder->validatePropertyNotNull('fileHandlerType');
     $dropFolder->validatePropertyNotNull('fileHandlerConfig');
     // validate values
     if (is_null($dropFolder->fileSizeCheckInterval)) {
         $dropFolder->fileSizeCheckInterval = DropFolder::FILE_SIZE_CHECK_INTERVAL_DEFAULT_VALUE;
     }
     if (is_null($dropFolder->fileNamePatterns)) {
         $dropFolder->fileNamePatterns = DropFolder::FILE_NAME_PATTERNS_DEFAULT_VALUE;
     }
     if (!kDataCenterMgr::dcExists($dropFolder->dc)) {
         throw new KalturaAPIException(KalturaErrors::DATA_CENTER_ID_NOT_FOUND, $dropFolder->dc);
     }
     if (!PartnerPeer::retrieveByPK($dropFolder->partnerId)) {
         throw new KalturaAPIException(KalturaErrors::INVALID_PARTNER_ID, $dropFolder->partnerId);
     }
     if (!DropFolderPlugin::isAllowedPartner($dropFolder->partnerId)) {
         throw new KalturaAPIException(KalturaErrors::PLUGIN_NOT_AVAILABLE_FOR_PARTNER, DropFolderPlugin::getPluginName(), $dropFolder->partnerId);
     }
     if ($dropFolder->type == KalturaDropFolderType::LOCAL) {
         $existingDropFolder = DropFolderPeer::retrieveByPathDefaultFilter($dropFolder->path);
         if ($existingDropFolder) {
             throw new KalturaAPIException(KalturaDropFolderErrors::DROP_FOLDER_ALREADY_EXISTS, $dropFolder->path);
         }
     }
     if (!is_null($dropFolder->conversionProfileId)) {
         $conversionProfileDb = conversionProfile2Peer::retrieveByPK($dropFolder->conversionProfileId);
         if (!$conversionProfileDb) {
             throw new KalturaAPIException(KalturaErrors::INGESTION_PROFILE_ID_NOT_FOUND, $dropFolder->conversionProfileId);
         }
     }
     // save in database
     $dbDropFolder = $dropFolder->toInsertableObject();
     $dbDropFolder->save();
     // return the saved object
     $dropFolder = KalturaDropFolder::getInstanceByType($dbDropFolder->getType());
     $dropFolder->fromObject($dbDropFolder, $this->getResponseProfile());
     return $dropFolder;
 }
Пример #5
0
 /**
  * @param string $baseClass
  * @param string $enumValue
  * @param array $constructorArgs
  * @return object
  */
 public static function loadObject($baseClass, $enumValue, array $constructorArgs = null)
 {
     $objectClass = self::getObjectClass($baseClass, $enumValue);
     if (is_null($objectClass)) {
         if ($baseClass == 'KalturaJobData') {
             $jobSubType = $constructorArgs["coreJobSubType"];
             if ($enumValue == DropFolderPlugin::getApiValue(DropFolderBatchType::DROP_FOLDER_CONTENT_PROCESSOR) && in_array($jobSubType, array(DropFolderType::FTP, DropFolderType::LOCAL, DropFolderType::S3, DropFolderType::SCP, DropFolderType::SFTP))) {
                 return new KalturaDropFolderContentProcessorJobData();
             }
         }
         return null;
     }
     if (!is_null($constructorArgs) && $objectClass != 'KalturaDropFolderContentProcessorJobData') {
         $reflect = new ReflectionClass($objectClass);
         return $reflect->newInstanceArgs($constructorArgs);
     } else {
         return new $objectClass();
     }
 }
Пример #6
0
 public static function loadObject($baseClass, $enumValue, array $constructorArgs = null)
 {
     switch ($baseClass) {
         case 'KDropFolderEngine':
             if ($enumValue == KalturaDropFolderType::WEBEX) {
                 return new KWebexDropFolderEngine();
             }
             break;
         case 'KalturaDropFolder':
             if ($enumValue == self::getDropFolderTypeCoreValue(WebexDropFolderType::WEBEX)) {
                 return new KalturaWebexDropFolder();
             }
             break;
         case 'KalturaDropFolderFile':
             if ($enumValue == self::getDropFolderTypeCoreValue(WebexDropFolderType::WEBEX)) {
                 return new KalturaWebexDropFolderFile();
             }
             break;
         case 'kDropFolderContentProcessorJobData':
             if ($enumValue == self::getDropFolderTypeCoreValue(WebexDropFolderType::WEBEX)) {
                 return new kWebexDropFolderContentProcessorJobData();
             }
             break;
         case 'KalturaJobData':
             $jobSubType = $constructorArgs["coreJobSubType"];
             if ($enumValue == DropFolderPlugin::getApiValue(DropFolderBatchType::DROP_FOLDER_CONTENT_PROCESSOR) && $jobSubType == self::getDropFolderTypeCoreValue(WebexDropFolderType::WEBEX)) {
                 return new KalturaWebexDropFolderContentProcessorJobData();
             }
             break;
         case 'Form_DropFolderConfigureExtend_SubForm':
             if ($enumValue == Kaltura_Client_DropFolder_Enum_DropFolderType::WEBEX) {
                 return new Form_WebexDropFolderConfigureExtend_SubForm();
             }
             break;
         case 'Kaltura_Client_DropFolder_Type_DropFolder':
             if ($enumValue == Kaltura_Client_DropFolder_Enum_DropFolderType::WEBEX) {
                 return new Kaltura_Client_WebexDropFolder_Type_WebexDropFolder();
             }
             break;
             break;
     }
 }
Пример #7
0
 private function addDropFolderContentProcessorJob(DropFolder $folder, DropFolderFile $dropFolderFileForObject, $dropFolderFileIds)
 {
     $batchJobType = DropFolderPlugin::getCoreValue('BatchJobType', DropFolderBatchType::DROP_FOLDER_CONTENT_PROCESSOR);
     $batchJob = new BatchJob();
     $batchJob->setPartnerId($folder->getPartnerId());
     $batchJob->setObjectId($dropFolderFileForObject->getId());
     $batchJob->setObjectType(DropFolderPlugin::getCoreValue('BatchJobObjectType', DropFolderBatchJobObjectType::DROP_FOLDER_FILE));
     $jobData = kDropFolderContentProcessorJobData::getInstance($folder->getType());
     //Required for plugins which require data to be set on the created entry from the drop folder files.
     $jobData->setData($folder, $dropFolderFileForObject, $dropFolderFileIds);
     return kJobsManager::addJob($batchJob, $jobData, $batchJobType, $folder->getType());
 }