Exemple #1
0
 /**
  * Allows you to add a new DrmPolicy object
  * 
  * @action add
  * @param KalturaDrmPolicy $drmPolicy
  * @return KalturaDrmPolicy
  * 
  * @throws KalturaErrors::PROPERTY_VALIDATION_CANNOT_BE_NULL
  */
 public function addAction(KalturaDrmPolicy $drmPolicy)
 {
     // check for required parameters
     $drmPolicy->validatePropertyNotNull('name');
     $drmPolicy->validatePropertyNotNull('status');
     $drmPolicy->validatePropertyNotNull('provider');
     $drmPolicy->validatePropertyNotNull('systemName');
     $drmPolicy->validatePropertyNotNull('scenario');
     $drmPolicy->validatePropertyNotNull('partnerId');
     // validate values
     $drmPolicy->validatePolicy();
     if (!PartnerPeer::retrieveByPK($drmPolicy->partnerId)) {
         throw new KalturaAPIException(KalturaErrors::INVALID_PARTNER_ID, $drmPolicy->partnerId);
     }
     if (!DrmPlugin::isAllowedPartner($drmPolicy->partnerId)) {
         throw new KalturaAPIException(KalturaErrors::PLUGIN_NOT_AVAILABLE_FOR_PARTNER, DrmPlugin::getPluginName(), $drmPolicy->partnerId);
     }
     if (DrmPolicyPeer::retrieveBySystemName($drmPolicy->systemName)) {
         throw new KalturaAPIException(DrmErrors::DRM_POLICY_DUPLICATE_SYSTEM_NAME, $drmPolicy->systemName);
     }
     // save in database
     $dbDrmPolicy = $drmPolicy->toInsertableObject();
     $dbDrmPolicy->save();
     // return the saved object
     $drmPolicy = KalturaDrmPolicy::getInstanceByType($dbDrmPolicy->getProvider());
     $drmPolicy->fromObject($dbDrmPolicy, $this->getResponseProfile());
     return $drmPolicy;
 }