/**
  * Submit action
  *
  * @return  string
  */
 public function submitAction()
 {
     $params = $this->getRequest()->getParams();
     $response = new Varien_Object();
     try {
         $request = $this->_getRequestModel()->setRequest($params['request'])->dispatch();
         $response->setStatus('OK');
         $response->setRequest($params['request']);
         $response->setMessage($request->getMessage());
         $response->setType($request->getType());
         if ($request->getType() == MageHack_MageConsole_Model_Abstract::RESPONSE_TYPE_PROMPT) {
             $key = $this->_savePrompt($params['request']);
             $response->setId($key);
         }
     } catch (Exception $e) {
         $response->setStatus('ERROR');
         $response->setType(MageHack_MageConsole_Model_Abstract::RESPONSE_TYPE_ERROR);
         $response->setMessage($e->getMessage());
     }
     $this->getResponse()->setBody($response->toJson());
 }
 /**
  * Submit action
  *
  * @return  string
  */
 public function submitAction()
 {
     $params = $this->getRequest()->getParams();
     $response = new Varien_Object();
     try {
         $request = $this->_getRequestModel()->setRequest($params['request'])->dispatch();
         $response->setStatus('OK');
         $response->setRequest($params['request']);
         $response->setMessage($request->getMessage());
         $response->setType($request->getType());
         if ($request->getType() == MageHack_MageConsole_Model_Abstract::RESPONSE_TYPE_PROMPT) {
             $key = $this->_savePrompt($params['request']);
             $response->setId($key);
         }
     } catch (Exception $e) {
         $response->setStatus('ERROR');
         $response->setType(MageHack_MageConsole_Model_Abstract::RESPONSE_TYPE_ERROR);
         $response->setMessage($e->getMessage());
     }
     if ($response->getType() == 'FILE') {
         $requestDetails = preg_split('/\\s+/', $params['request']);
         $this->_prepareDownloadResponse($requestDetails[1] . '_export.csv', $response->getMessage());
     } else {
         $this->getResponse()->setBody($response->toJson());
     }
 }
 public function testAppendReceiverEmail()
 {
     $request = new Dhl_Intraship_Model_Soap_Client_Shipment_Create();
     $parcel = new Varien_Object();
     $shipment = new Varien_Object();
     $billingAddress = new Varien_Object();
     $billingAddress->setPackageNotification(true);
     $shipment->setBillingAddress($billingAddress);
     $parcel->setShipment($shipment);
     $receiver = new Varien_Object();
     $receiver->setEmail('*****@*****.**');
     $shipmentOrder = array('Shipment' => array('Receiver' => array('Communication' => array('email' => null))));
     $params = new Dhl_Intraship_Model_Soap_Client_Shipment_Create();
     $params->offsetSet('ShipmentOrder', $shipmentOrder);
     $request->offsetSet('shipment', $parcel);
     $request->offsetSet('receiver', $receiver);
     $request->offsetSet('params', $params);
     $observer = Mage::getModel('dhlaccount/observer');
     $event = new Varien_Event_Observer();
     $eventData = new Varien_Object();
     $eventData->setRequest($request);
     $event->setEvent($eventData);
     $observer->appendReceiverEmail($event);
     $shipmentOrder = $request->offsetGet('params')->offsetGet('ShipmentOrder');
     $this->assertTrue(array_key_exists('Shipment', $shipmentOrder));
     $this->assertTrue(array_key_exists('Receiver', $shipmentOrder['Shipment']));
     $this->assertTrue(array_key_exists('Communication', $shipmentOrder['Shipment']['Receiver']));
     $this->assertTrue(array_key_exists('email', $shipmentOrder['Shipment']['Receiver']['Communication']));
     $this->assertEquals('*****@*****.**', $shipmentOrder['Shipment']['Receiver']['Communication']['email']);
 }