Commit 73c5f333 authored by Олег Гиммельшпах's avatar Олег Гиммельшпах

Merge branch 'master' of git.task-on.com:ktask/task-on.com

parents 4cc2187e b7c2d1fc
<?php
namespace common\components;
use common\modules\triggers\components\conditions\vendor\ConditionBase;
use yii\helpers\Json;
/**
......@@ -39,6 +40,11 @@ class UnisenderAPI {
*/
protected $visitedLinks = [];
/**
* @var array
*/
protected $statuses = [];
/**
* @param string $ApiKey
* @param string $Encoding
......@@ -94,6 +100,36 @@ class UnisenderAPI {
);
}
/**
* @param $message_id
* @return array
*/
public function getMessageStatuses($message_id){
$this->statuses = $this->callMethod(
'checkEmail',
[
'email_id' => $message_id
]
);
$this->statuses = Json::decode($this->statuses);
return $this->statuses;
}
/**
* @return bool
*/
public function isReaded(){
if (array_key_exists('result', $this->statuses) && array_key_exists('status', $this->statuses['result'])) {
if ($this->statuses['result']['status']==ConditionBase::MESSAGE_READ)
return true;
}
return false;
}
/**
* @param $campaign_id
* @return mixed
*/
public function getVisitedLinks($campaign_id){
$this->visitedLinks = $this->callMethod(
'getVisitedLinks',
......@@ -105,6 +141,11 @@ class UnisenderAPI {
return $this->visitedLinks;
}
/**
* @param $email
* @param $link
* @return bool
*/
public function linkIsVisited($email, $link) {
if (array_key_exists('result', $this->visitedLinks) && array_key_exists('data', $this->visitedLinks['result'])) {
foreach($this->visitedLinks['result']['data'] as $transition) {
......
<?php
namespace common\modules\triggers\components\conditions\conditions;
use common\components\UnisenderAPI;
use common\modules\triggers\components\conditions\vendor\ConditionBase;
use common\modules\triggers\components\conditions\vendor\ConditionInterface;
......@@ -19,7 +20,18 @@ class CheckEmailToOpening extends ConditionBase implements ConditionInterface {
return parent::init($conditionName);
}
/**
* @param $message
* @return bool
*/
public function check($message){
if (!is_null($message)) {
// Создаем объект унисендера
$sender=new UnisenderAPI();
// Делаем запрос на получение статуса сообщения
$sender->getMessageStatuses($message->message_id);
return $sender->isReaded();
}
return true;
}
}
\ No newline at end of file
......@@ -11,6 +11,11 @@ class ConditionBase {
public $config = [];
const MESSAGE_READ = 'ok_read';
const MESSAGE_LINK_VISITED = 'ok_link_visited';
const MESSAGE_UNSUBSCRIBED = 'ok_unsubscribed';
const MESSAGE_SPAM_FOLDER = 'ok_spam_folder';
/**
* @param string $conditionName
* @return mixed
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment