/** * @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; }
/** * @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; }
/** * 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()); }
/** * 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); }