1: | <?php |
2: | |
3: | |
4: | |
5: | |
6: | |
7: | |
8: | namespace Aurora\Modules\MailScheduledMessages\Storages\Db; |
9: | |
10: | |
11: | |
12: | |
13: | |
14: | |
15: | class Storage extends \Aurora\Modules\MailScheduledMessages\Storages\Storage |
16: | { |
17: | |
18: | |
19: | |
20: | protected $oConnection; |
21: | |
22: | |
23: | |
24: | |
25: | protected $oCommandCreator; |
26: | |
27: | |
28: | |
29: | |
30: | |
31: | public function __construct(\Aurora\System\Managers\AbstractManager &$oManager) |
32: | { |
33: | parent::__construct($oManager); |
34: | |
35: | $this->oConnection =& $oManager->GetConnection(); |
36: | $this->oCommandCreator = new CommandCreator\MySQL(); |
37: | } |
38: | |
39: | |
40: | |
41: | |
42: | public function getMessagesForSend($iTimestamp) |
43: | { |
44: | $mResult = []; |
45: | |
46: | if ($this->oConnection->Execute($this->oCommandCreator->getMessagesForSend($iTimestamp))) { |
47: | $oRow = null; |
48: | while (false !== ($oRow = $this->oConnection->GetNextRecord())) { |
49: | $mResult[] = [ |
50: | 'AccountId' => (int) $oRow->account_id, |
51: | 'FolderFullName' => $oRow->folder_full_name, |
52: | 'MessageUid' => $oRow->message_uid, |
53: | 'ScheduleTimestamp' => (int) $oRow->schedule_timestamp |
54: | ]; |
55: | } |
56: | $this->oConnection->FreeResult(); |
57: | } |
58: | |
59: | return $mResult; |
60: | } |
61: | |
62: | public function getMessage($iAccountID, $sFolderFullName, $sMessageUid) |
63: | { |
64: | $mResult = false; |
65: | if ($this->oConnection->Execute($this->oCommandCreator->getMessage($iAccountID, $sFolderFullName, $sMessageUid))) { |
66: | $oRow = $this->oConnection->GetNextRecord(); |
67: | if ($oRow !== false) { |
68: | $mResult = [ |
69: | 'AccountId' => (int) $oRow->account_id, |
70: | 'FolderFullName' => $oRow->folder_full_name, |
71: | 'MessageUid' => $oRow->message_uid, |
72: | 'ScheduleTimestamp' => (int) $oRow->schedule_timestamp |
73: | ]; |
74: | } |
75: | $this->oConnection->FreeResult(); |
76: | } |
77: | |
78: | return $mResult; |
79: | } |
80: | |
81: | public function addMessage($iAccountID, $sFolderFullName, $sMessageUid, $iTimestamp) |
82: | { |
83: | return $this->oConnection->Execute($this->oCommandCreator->addMessage($iAccountID, $sFolderFullName, $sMessageUid, $iTimestamp)); |
84: | } |
85: | |
86: | public function updateMessageScheduleTimestamp($iAccountID, $sFolderFullName, $sMessageUid, $iTimestamp) |
87: | { |
88: | return $this->oConnection->Execute($this->oCommandCreator->updateMessageScheduleTimestamp($iAccountID, $sFolderFullName, $sMessageUid, $iTimestamp)); |
89: | } |
90: | |
91: | public function removeMessage($iAccountID, $sFolderFullName, $sMessageUid) |
92: | { |
93: | return $this->oConnection->Execute($this->oCommandCreator->removeMessage($iAccountID, $sFolderFullName, $sMessageUid)); |
94: | } |
95: | } |
96: | |