Skip to content
This repository has been archived by the owner on Aug 15, 2024. It is now read-only.

Commit

Permalink
creating promotional outgoing messages
Browse files Browse the repository at this point in the history
  • Loading branch information
blopa committed Dec 24, 2017
1 parent d348d72 commit ed92526
Show file tree
Hide file tree
Showing 6 changed files with 73 additions and 17 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,8 @@ public function execute()
{
/** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
$resultRedirect = $this->resultRedirectFactory->create();
$data = $this->getRequest()->getPostValue();
// $data = $this->getRequest()->getPostValue();
$data = $this->getCompleteData($this->getRequest()->getPostValue());
if ($data) {
$id = $this->getRequest()->getParam('promotionalmessages_id');

Expand All @@ -58,7 +59,6 @@ public function execute()
$this->messageManager->addErrorMessage(__('This Promotionalmessages no longer exists.'));
return $resultRedirect->setPath('*/*/');
}

$model->setData($data);

try {
Expand All @@ -81,4 +81,18 @@ public function execute()
}
return $resultRedirect->setPath('*/*/');
}

private function getCompleteData($data)
{
if (!$data)
return array();

$newData = $data;
$datetime = date('Y-m-d H:i:s');
$newData['created_at'] = $datetime;
$newData['updated_at'] = $datetime;
$newData['status'] = 0;

return $newData;
}
}
47 changes: 43 additions & 4 deletions Magento2/app/code/Werules/Chatbot/Cron/PromotionalMessages.php
Original file line number Diff line number Diff line change
Expand Up @@ -24,16 +24,27 @@
class PromotionalMessages
{

protected $logger;
protected $_logger;
protected $_messageModel;
protected $_helper;
protected $_define;

/**
* Constructor
*
* @param \Psr\Log\LoggerInterface $logger
*/
public function __construct(\Psr\Log\LoggerInterface $logger)
public function __construct(
\Psr\Log\LoggerInterface $logger,
\Werules\Chatbot\Model\Message $message,
\Werules\Chatbot\Helper\Data $helperData,
\Werules\Chatbot\Helper\Define $define
)
{
$this->logger = $logger;
$this->_logger = $logger;
$this->_messageModel = $message;
$this->_helper = $helperData;
$this->_define = $define;
}

/**
Expand All @@ -43,6 +54,34 @@ public function __construct(\Psr\Log\LoggerInterface $logger)
*/
public function execute()
{
$this->logger->addInfo("Cronjob PromotionalMessages is executed.");
$promotionalMessageCollection = $this->_messageModel->getCollection()
->addFieldToFilter('status', array('eq' => $this->_define::NOT_SENT));

if (count($promotionalMessageCollection) > 0)
{
$uniqueMessageCollection = $this->_messageModel->getCollection()->distinct(true);
$uniqueMessageCollection->getSelect()->group('sender_id');
foreach ($promotionalMessageCollection as $promotionalMessage)
{
$messageContent = $promotionalMessage->getContent();
foreach ($uniqueMessageCollection as $message)
{
$content = array(
'content_type' => $this->_define::CONTENT_TEXT,
'content' => $messageContent,
'current_command_details' => json_encode(array()),
);
$outgoingMessage = $this->_helper->createOutgoingMessage($message, $content);
$result = $this->_helper->processOutgoingMessage($outgoingMessage);

if ($result)
{
$promotionalMessage->setStatus($this->_define::SENT);
$promotionalMessage->setUpdatedAt(date('Y-m-d H:i:s'));
$promotionalMessage->save();
}
}
}
}
}
}
1 change: 1 addition & 0 deletions Magento2/app/code/Werules/Chatbot/Cron/QueueWorker.php
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ class QueueWorker
protected $_logger;
protected $_messageModel;
protected $_helper;
protected $_define;

/**
* Constructor
Expand Down
2 changes: 2 additions & 0 deletions Magento2/app/code/Werules/Chatbot/Helper/Define.php
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,8 @@ class Define
const DEFAULT_MIN_CONFIDENCE = 0.7;
const BREAK_LINE = '\n'; // chr(10)
const QUEUE_PROCESSING_LIMIT = self::SECONDS_IN_MINUTE * 3;
const NOT_SENT = 0;
const SENT = 1;

// commands
const START_COMMAND_ID = 0;
Expand Down
2 changes: 1 addition & 1 deletion Magento2/app/code/Werules/Chatbot/Setup/UpgradeSchema.php
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,7 @@ public function upgrade(
'status',
\Magento\Framework\DB\Ddl\Table::TYPE_SMALLINT,
null,
[],
['default' => 0,'nullable' => False],
'Status'
);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="filter" xsi:type="string">text</item>
<item name="label" translate="true" xsi:type="string">content</item>
<item name="label" translate="true" xsi:type="string">Content</item>
<item name="editor" xsi:type="array">
<item name="editorType" xsi:type="string">text</item>
<item name="validation" xsi:type="array">
Expand All @@ -101,36 +101,36 @@
</item>
</argument>
</column>
<actionsColumn class="Werules\Chatbot\Ui\Component\Listing\Column\PromotionalMessagesActions" name="actions">
<column name="status">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="indexField" xsi:type="string">promotionalmessages_id</item>
<item name="filter" xsi:type="string">text</item>
<item name="label" translate="true" xsi:type="string">Status</item>
</item>
</argument>
</actionsColumn>
</column>
<column name="created_at">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="filter" xsi:type="string">text</item>
<item name="label" translate="true" xsi:type="string">created_at</item>
<item name="label" translate="true" xsi:type="string">Created At</item>
</item>
</argument>
</column>
<column name="updated_at">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="filter" xsi:type="string">text</item>
<item name="label" translate="true" xsi:type="string">updated_at</item>
<item name="label" translate="true" xsi:type="string">Updated At</item>
</item>
</argument>
</column>
<column name="status">
<actionsColumn class="Werules\Chatbot\Ui\Component\Listing\Column\PromotionalMessagesActions" name="actions">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="filter" xsi:type="string">text</item>
<item name="label" translate="true" xsi:type="string">status</item>
<item name="indexField" xsi:type="string">promotionalmessages_id</item>
</item>
</argument>
</column>
</actionsColumn>
</columns>
</listing>

0 comments on commit ed92526

Please sign in to comment.