/** * Add new Distribution Profile * * @action add * @param KalturaDistributionProfile $distributionProfile * @return KalturaDistributionProfile * @throws ContentDistributionErrors::DISTRIBUTION_PROVIDER_NOT_FOUND */ function addAction(KalturaDistributionProfile $distributionProfile) { $distributionProfile->validatePropertyMinLength("name", 1); $distributionProfile->validatePropertyNotNull("providerType"); if (is_null($distributionProfile->status)) { $distributionProfile->status = KalturaDistributionProfileStatus::DISABLED; } $providerType = kPluginableEnumsManager::apiToCore('DistributionProviderType', $distributionProfile->providerType); $dbDistributionProfile = DistributionProfilePeer::createDistributionProfile($providerType); if (!$dbDistributionProfile) { throw new KalturaAPIException(ContentDistributionErrors::DISTRIBUTION_PROVIDER_NOT_FOUND, $distributionProfile->providerType); } $distributionProfile->toInsertableObject($dbDistributionProfile); $dbDistributionProfile->setPartnerId($this->impersonatedPartnerId); $dbDistributionProfile->save(); $distributionProfile = KalturaDistributionProfileFactory::createKalturaDistributionProfile($dbDistributionProfile->getProviderType()); $distributionProfile->fromObject($dbDistributionProfile); return $distributionProfile; }