/** * 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; }