/** * Update details and settings of an existing partner * * @action update * @param KalturaPartner $partner * @param bool $allowEmpty * @return KalturaPartner * * @throws APIErrors::UNKNOWN_PARTNER_ID */ public function updateAction(KalturaPartner $partner, $allowEmpty = false) { kWAMS::testConnection($partner->wamsAccountName, $partner->wamsAccountKey); $dbPartner = PartnerPeer::retrieveByPK($this->getPartnerId()); if (!$dbPartner) { throw new KalturaAPIException(APIErrors::UNKNOWN_PARTNER_ID, $this->getPartnerId()); } try { $dbPartner = $partner->toUpdatableObject($dbPartner); $dbPartner->save(); } catch (kUserException $e) { if ($e->getCode() === kUserException::USER_NOT_FOUND) { throw new KalturaAPIException(KalturaErrors::USER_NOT_FOUND); } throw $e; } catch (kPermissionException $e) { if ($e->getCode() === kPermissionException::ACCOUNT_OWNER_NEEDS_PARTNER_ADMIN_ROLE) { throw new KalturaAPIException(KalturaErrors::ACCOUNT_OWNER_NEEDS_PARTNER_ADMIN_ROLE); } throw $e; } $partner = new KalturaPartner(); $partner->fromPartner($dbPartner); return $partner; }