コード例 #1
0
 /**
  * @return void
  */
 public function spamAction()
 {
     /* $this->_dm = $this->getServiceLocator ()->get ( 'doctrine.documentmanager.odm_default' );
        $this->_dm->getConfiguration ()->setDefaultDB ( 'MoveIn4-Client-demoschool' );
        
        
        */
     $message = new Message(array('env' => getenv('APPLICATION_ENV'), 'inst' => 'demoschool3000'));
     //         $data = array(
     //             'fields'=>['id']
     //         );
     //         $tokenId = $message->addAction('movein', 'getList', $data, 'MoveIn4DocumentType\Model\DocumentTypeDocument');
     $data['text'] = '123';
     $data['data'] = ['tag1' => 1];
     $mergeId = $message->addAction('mailmerge', 'merge', $data, 'MailMerge');
     //         $data = array(
     //             'fields'=>['id']
     //         );
     //         $tokenId = $message->addAction('movein', 'getList', $data, 'MoveIn4Group\Model\Group');
     //         $data = array(
     //             'name'=>rand()
     //         );
     //         $tokenId = $message->addAction('movein', 'edit', $data, 'MoveIn4DegreeType\Model\DegreeType');
     //         $tokenId = $message->addAction('movein', 'edit', $data, 'MoveIn4DegreeType\Model\DegreeType');
     $xml = $message->asXml();
     $router = $this->getServiceLocator()->get('platform-router');
     for ($i = 0; $i < 6000; $i++) {
         $router->queue($xml);
     }
     exit;
 }
コード例 #2
0
 /**
  *
  * @param string $message  
  * @return array          
  */
 public function blockingCall($message)
 {
     $platformMessage = new Message(false, $message);
     $action = $platformMessage->getNextAction();
     if (count($action)) {
         if (isset($action[0]->headers->handler)) {
             $handler = (string) $action[0]->headers->handler;
         }
         $method = (string) $action[0]->headers->method;
         if (!$this->_serviceLocator->has($handler)) {
             throw new \Exception('Service ' . $handler . ' not found');
         }
         // set the default db
         if (isset($action[0]->data->auth->inst)) {
             $dm = $this->_serviceLocator->get('doctrine.documentmanager.odm_default');
             $dm->getConfiguration()->setDefaultDB('MoveIn4-Client-' . (string) $action[0]->data->auth->inst);
         } else {
             throw new \Exception('Instance ID not in message');
         }
         // get the worker service
         $worker = $this->_serviceLocator->get($handler);
         // send the data to the worker
         $res = $worker->{$method}($action[0]->data);
     }
     return $res;
 }
コード例 #3
0
 /**
  * @return void
  */
 public function spamAction()
 {
     $message = new Message(array('env' => getenv('APPLICATION_ENV'), 'inst' => 'demoschool3000'));
     $data['text'] = '123';
     $data['data'] = ['tag1' => 1];
     $mergeId = $message->addAction('mailmerge', 'merge', $data, 'MailMerge');
     $xml = $message->asXml();
     $router = $this->getServiceLocator()->get('platform-router');
     for ($i = 0; $i < 6000; $i++) {
         $router->queue($xml);
     }
     exit;
 }
コード例 #4
0
 /**
  * Init form template data
  * @param Xml $data request xml
  * @param unknown $db db client
  * @return void
  */
 private function _initFormTemplates($data, $db)
 {
     $router = $this->serviceManager->get('platform-router');
     // Get collection and xml files
     $basepath = dirname(__FILE__) . "/../Data/";
     // Storing formtemplate doc in file storage
     $formTemplateXml = file_get_contents($basepath . 'moveinEnguiry_form.xml');
     $formTemplateFileRef = $router->saveFileResource($formTemplateXml);
     // Storing formtemplate translation doc in file storage
     $formTemplateTranslationXml = file_get_contents($basepath . 'moveinEnguiry_translations.xml');
     $formTemplateTranslationFileRef = $router->saveFileResource($formTemplateTranslationXml);
     $auth = array('env' => (string) $data->auth->env, 'inst' => (string) $data->auth->inst, 'userId' => (string) $data->auth->userId);
     $message = new Message($auth);
     $mergeFileData = array('id' => null, 'file' => array('fileRef' => (string) $formTemplateFileRef), 'options' => array('filename' => 'moveinEnguiry_form.xml', 'pathPrepend' => array($auth['env'], $auth['inst'])));
     $formTemplatefileStorage = $message->addAction('filestorage', 'saveFile', $mergeFileData, 'FileStorage');
     $mergeFileData = array('id' => null, 'file' => array('fileRef' => (string) $formTemplateTranslationFileRef), 'options' => array('filename' => 'moveinEnguiry_translations.xml', 'pathPrepend' => array($auth['env'], $auth['inst'])));
     $formTemplateTranslationStorage = $message->addAction('filestorage', 'saveFile', $mergeFileData, 'FileStorage');
     $formTemplateRow = ['name' => 'Enquiry form template', 'formXml' => ['_id' => new \MongoId(), 'fileName' => 'moveinEnguiry_form.xml', 'fileStorageId_attr' => array('xpath' => '//response/action[@id="' . $formTemplatefileStorage . '"]/data/docId')], 'translationXml' => ['_id' => new \MongoId(), 'fileName' => 'moveinEnguiry_translations.xml', 'fileStorageId_attr' => array('xpath' => '//response/action[@id="' . $formTemplateTranslationStorage . '"]/data/docId')]];
     $editId = $message->addAction('moveinAdmin', 'saveInitTemplate', $formTemplateRow, 'MoveIn4Instance\\Model\\Instance');
     $router->queue($message->asXml());
 }
コード例 #5
0
 /**
  * Creates an new ActivityIncomingEmailDocument for each new email imported
  * @param  array $data data to be manipulated
  * @return array
  */
 public function importIncomingEmail($data)
 {
     // for each email, create an activity
     $result = array();
     $router = $this->serviceManager->get('platform-router');
     $matchedPersons = array();
     foreach ($data->rows as $email) {
         //initilize the array of new activities
         $activityId = array();
         $dateRecieved = new \DateTime((string) $email->email_date);
         $body = $router->getFileResource((int) $email->email_body['fileRef']);
         $bodyPlain = $router->getFileResource((int) $email->email_body_plain['fileRef']);
         //get email data
         $emailData = array('emailImportId' => (int) $email->email_id, 'subject' => (string) $email->email_subject, 'messageHtml' => iconv(mb_detect_encoding((string) $body['file'], mb_detect_order(), true), "UTF-8//IGNORE", (string) $body['file']), 'message' => iconv(mb_detect_encoding((string) $bodyPlain['file'], mb_detect_order(), true), "UTF-8//IGNORE", (string) $bodyPlain['file']), 'fromEmailString' => (string) $email->email_from, 'dateRecieved' => $dateRecieved->format('d/m/Y h:i:A'), 'emailConfig' => (string) $data->emailConfigId);
         //get the attachments
         $attachmentArray = array();
         foreach ($email->email_attachment as $att) {
             $attachmentArray['file' . (string) $att->id] = array('id' => (string) $att->id, 'fileName' => (string) $att->filename, 'file' => $att->file);
         }
         //check to see if the person exists in the system
         //get the email address
         $emailAddress = explode('<', (string) $email->email_from);
         $emailAddress = rtrim($emailAddress[count($emailAddress) - 1], '>');
         if (!isset($matchedPersons[$emailAddress])) {
             //query for persons
             $query = $this->_dm->createQueryBuilder('MoveIn4Person\\Document\\PersonDocument')->field('active')->equals(true)->field('deleted')->equals(false)->field('email.email')->equals($emailAddress);
             $personResult = $query->getQuery()->execute();
             foreach ($personResult as $person) {
                 $matchedPersons[$emailAddress][] = $person->getId();
             }
         }
         //if matching person is found
         if (isset($matchedPersons[$emailAddress])) {
             foreach ($matchedPersons[$emailAddress] as $person) {
                 $message = new Message(array('env' => (string) $data->auth->env, 'inst' => (string) $data->auth->inst, 'userId' => (string) $data->auth->userId));
                 $emailData['fromPerson'] = $person;
                 $message->addAction('null', 'null', $emailData);
                 $action = $message->getNextAction();
                 $activityId[] = parent::edit($action[0]->data);
             }
             //if no matching person found
         } else {
             $message = new Message(array('env' => (string) $data->auth->env, 'inst' => (string) $data->auth->inst, 'userId' => (string) $data->auth->userId));
             $message->addAction('null', 'null', $emailData);
             $action = $message->getNextAction();
             $activityId[] = parent::edit($action[0]->data);
         }
         $result[] = $activityId;
         $auth = array('env' => (string) $data->auth->env, 'inst' => (string) $data->auth->inst, 'userId' => (string) $data->auth->userId);
         if (count($attachmentArray)) {
             //foreach attachment save in file storage and add to activity
             foreach ($attachmentArray as $attachment) {
                 $message = new Message($auth);
                 //save file
                 $mergeFileData = array('id' => null, 'file_attr' => array('fileRef' => (string) $attachment['file']["fileRef"]), 'options' => array('filename' => $attachment['fileName'], 'pathPrepend' => array($auth['env'], $auth['inst'])));
                 $fileStorage = $message->addAction('filestorage', 'saveFile', $mergeFileData, 'FileStorage');
                 //update activity
                 foreach ($activityId as $aId) {
                     $updateData['id'] = $aId['id'];
                     $updateData['attachment'] = array('fileName' => $attachment['fileName'], 'fileStorageId_attr' => array('xpath' => '//response/action[@id="' . $fileStorage . '"]/data/docId'));
                     $editId = $message->addAction('movein', 'editIncommingEmail', $updateData, 'MoveIn4Activity\\Model\\ActivityIncomingEmail');
                 }
                 $router->queue($message->asXml());
             }
         }
     }
     return array('rows' => $result);
 }
コード例 #6
0
 /**
  * form service
  * @return void
  */
 public function formServiceAction()
 {
     $id = $this->params('id', false);
     $tabId = $this->params()->fromPost('tabId', '');
     $browserTabId = $this->params()->fromPost('browserTabId', '');
     $formXml = 'templates/marketingSource/forms/edit.xml';
     $handler = 'MoveIn4MarketingSource\\Model\\MarketingSource';
     $formCollection = 'marketingSource';
     $fields = array('id', 'name');
     $jsFunction = $this->params()->fromPost('jsCallback', 'formbuilder.disableControl');
     $filter = array('groupOp' => 'and');
     $filter['rules'][] = array('field' => 'parent', 'label' => 'label_parent', 'op' => 'null', 'data' => '', 'data_label' => '');
     if ($tabId !== '' and strpos($tabId, '-') === false) {
         $filter['rules'][] = array('field' => 'id', 'label' => 'label_id', 'op' => '!eq', 'data' => $tabId, 'data_label' => 'tabId');
     }
     $this->formServiceHelper($formXml, $handler, $formCollection, $fields, $filter);
     if ($tabId !== '' and strpos($tabId, '-') === false) {
         $filter = array('groupOp' => 'and', 'rules' => array(0 => array('field' => 'parent', 'label' => 'label_parent', 'op' => 'eq', 'data' => $tabId, 'data_label' => 'tabId')));
         $data = array('fields' => 'id', 'searchFilters' => $filter);
         $message = new Message(array('env' => getenv('APPLICATION_ENV'), 'inst' => getenv('APPLICATION_INSTANCE')));
         $messageId = $message->addAction($this->defaultQueue, 'getList', $data, $handler);
         $data = array('channel' => array('tab_' . $browserTabId), 'message' => array('id' => $id, 'key' => 'id', 'value' => 'name', 'listData_attr' => array('xpath' => '//response/action[@id="' . $messageId . '"]/data/rows')), 'jsFunction' => $jsFunction);
         $message->addAction('response', 'send', $data, 'SocketResponse');
         $this->queue($message);
         // disable
         // dropdown
     }
     return $this->setresponse();
 }