bytic /
mail-module
| 1 | <?php |
||
| 2 | |||
| 3 | namespace Nip\MailModule\Models\LinksTable; |
||
| 4 | |||
| 5 | use Nip\Database\Query\Insert; |
||
| 6 | use Nip\Records\Traits\AbstractTrait\RecordTrait as AbstractRecordTrait; |
||
| 7 | |||
| 8 | /** |
||
| 9 | * Trait LinkTrait |
||
| 10 | * @package Nip\MailModule\Models\LinksTable |
||
| 11 | */ |
||
| 12 | trait LinkTrait |
||
| 13 | { |
||
| 14 | use AbstractRecordTrait; |
||
| 15 | |||
| 16 | /** |
||
| 17 | * @param $notification |
||
| 18 | * @return Insert |
||
| 19 | */ |
||
| 20 | public function incrementQueryFromSendGrid($notification) |
||
| 21 | { |
||
| 22 | $cols = ['hash', 'id_email', 'email', 'smtp-id', 'category', 'url', 'ip', 'useragent', 'clicks']; |
||
| 23 | /** @var Insert $query */ |
||
| 24 | $query = $this->newQuery('insert'); |
||
|
0 ignored issues
–
show
Bug
introduced
by
Loading history...
|
|||
| 25 | $query->setCols($cols); |
||
| 26 | |||
| 27 | $notification['hash'] = sha1($notification['id_email'] . $notification['email'] . $notification['url']); |
||
| 28 | $values = []; |
||
| 29 | foreach ($cols as $col) { |
||
| 30 | $values[$col] = $notification[$col]; |
||
| 31 | } |
||
| 32 | $values['clicks'] = 1; |
||
| 33 | $query->data($values); |
||
| 34 | $onDuplicate = ['clicks' => ['`clicks`+1', false]]; |
||
| 35 | $query->onDuplicate($onDuplicate); |
||
| 36 | |||
| 37 | return $query; |
||
| 38 | } |
||
| 39 | } |
||
| 40 |