Example #1
0
 /**
  * Initialize server components. Lightweight implementation of init() method
  *
  * @param string $adapterCode Adapter code
  * @param string $handler OPTIONAL Handler name (if not specified, it will be found from config)
  * @return Mage_Api_Model_Server
  */
 public function initialize($adapterCode, $handler = null)
 {
     /** @var $helper Mage_Api_Model_Config */
     $helper = Mage::getSingleton('api/config');
     $adapters = $helper->getActiveAdapters();
     if (isset($adapters[$adapterCode])) {
         /** @var $adapterModel Mage_Api_Model_Server_Adapter_Interface */
         $adapterModel = Mage::getModel((string) $adapters[$adapterCode]->model);
         if (!$adapterModel instanceof Mage_Api_Model_Server_Adapter_Interface) {
             Mage::throwException(Mage::helper('api')->__('Invalid webservice adapter specified.'));
         }
         $this->_adapter = $adapterModel;
         $this->_api = $adapterCode;
         // get handler code from config if no handler passed as argument
         if (null === $handler && !empty($adapters[$adapterCode]->handler)) {
             $handler = (string) $adapters[$adapterCode]->handler;
         }
         $handlers = $helper->getHandlers();
         if (!isset($handlers->{$handler})) {
             Mage::throwException(Mage::helper('api')->__('Invalid webservice handler specified.'));
         }
         $handlerClassName = Mage::getConfig()->getModelClassName((string) $handlers->{$handler}->model);
         $this->_adapter->setHandler($handlerClassName);
     } else {
         Mage::throwException(Mage::helper('api')->__('Invalid webservice adapter specified.'));
     }
     return $this;
 }