Change user_agent_type column to tinyint
[MAILPOET-3736]
This commit is contained in:
@ -428,7 +428,7 @@ class Migrator {
|
|||||||
'queue_id int(11) unsigned NOT NULL,',
|
'queue_id int(11) unsigned NOT NULL,',
|
||||||
'link_id int(11) unsigned NOT NULL,',
|
'link_id int(11) unsigned NOT NULL,',
|
||||||
'user_agent_id int(11) unsigned NULL,',
|
'user_agent_id int(11) unsigned NULL,',
|
||||||
'user_agent_type varchar(50) NULL,',
|
'user_agent_type tinyint(1) NOT NULL DEFAULT 0,',
|
||||||
'count int(11) unsigned NOT NULL,',
|
'count int(11) unsigned NOT NULL,',
|
||||||
'created_at timestamp NULL,', // must be NULL, see comment at the top
|
'created_at timestamp NULL,', // must be NULL, see comment at the top
|
||||||
'updated_at timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,',
|
'updated_at timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,',
|
||||||
@ -447,7 +447,7 @@ class Migrator {
|
|||||||
'subscriber_id int(11) unsigned NOT NULL,',
|
'subscriber_id int(11) unsigned NOT NULL,',
|
||||||
'queue_id int(11) unsigned NOT NULL,',
|
'queue_id int(11) unsigned NOT NULL,',
|
||||||
'user_agent_id int(11) unsigned NULL,',
|
'user_agent_id int(11) unsigned NULL,',
|
||||||
'user_agent_type varchar(50) NULL,',
|
'user_agent_type tinyint(1) NOT NULL DEFAULT 0,',
|
||||||
'created_at timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,',
|
'created_at timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,',
|
||||||
'PRIMARY KEY (id),',
|
'PRIMARY KEY (id),',
|
||||||
'KEY newsletter_id_subscriber_id_user_agent_type (newsletter_id, subscriber_id, user_agent_type),',
|
'KEY newsletter_id_subscriber_id_user_agent_type (newsletter_id, subscriber_id, user_agent_type),',
|
||||||
|
@ -59,10 +59,10 @@ class StatisticsClickEntity {
|
|||||||
private $userAgent;
|
private $userAgent;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @ORM\Column(type="string", nullable=true)
|
* @ORM\Column(type="smallint")
|
||||||
* @var string|null
|
* @var int
|
||||||
*/
|
*/
|
||||||
private $userAgentType;
|
private $userAgentType = 0;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @ORM\Column(type="integer")
|
* @ORM\Column(type="integer")
|
||||||
@ -170,11 +170,11 @@ class StatisticsClickEntity {
|
|||||||
$this->userAgent = $userAgent;
|
$this->userAgent = $userAgent;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getUserAgentType(): ?string {
|
public function getUserAgentType(): int {
|
||||||
return $this->userAgentType;
|
return $this->userAgentType;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function setUserAgentType(?string $userAgentType): void {
|
public function setUserAgentType(int $userAgentType): void {
|
||||||
$this->userAgentType = $userAgentType;
|
$this->userAgentType = $userAgentType;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -44,10 +44,10 @@ class StatisticsOpenEntity {
|
|||||||
private $userAgent;
|
private $userAgent;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @ORM\Column(type="string", nullable=true)
|
* @ORM\Column(type="smallint")
|
||||||
* @var string|null
|
* @var int
|
||||||
*/
|
*/
|
||||||
private $userAgentType;
|
private $userAgentType = 0;
|
||||||
|
|
||||||
public function __construct(
|
public function __construct(
|
||||||
NewsletterEntity $newsletter,
|
NewsletterEntity $newsletter,
|
||||||
@ -104,11 +104,11 @@ class StatisticsOpenEntity {
|
|||||||
$this->userAgent = $userAgent;
|
$this->userAgent = $userAgent;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getUserAgentType(): ?string {
|
public function getUserAgentType(): int {
|
||||||
return $this->userAgentType;
|
return $this->userAgentType;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function setUserAgentType(?string $userAgentType): void {
|
public function setUserAgentType(int $userAgentType): void {
|
||||||
$this->userAgentType = $userAgentType;
|
$this->userAgentType = $userAgentType;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -16,8 +16,8 @@ class UserAgentEntity {
|
|||||||
use CreatedAtTrait;
|
use CreatedAtTrait;
|
||||||
use UpdatedAtTrait;
|
use UpdatedAtTrait;
|
||||||
|
|
||||||
public const USER_AGENT_TYPE_HUMAN = 'human';
|
public const USER_AGENT_TYPE_HUMAN = 0;
|
||||||
public const USER_AGENT_TYPE_MACHINE = 'machine';
|
public const USER_AGENT_TYPE_MACHINE = 1;
|
||||||
|
|
||||||
public const MACHINE_USER_AGENTS = [
|
public const MACHINE_USER_AGENTS = [
|
||||||
'Mozilla/5.0',
|
'Mozilla/5.0',
|
||||||
@ -52,7 +52,7 @@ class UserAgentEntity {
|
|||||||
return $this->hash;
|
return $this->hash;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getUserAgentType(): string {
|
public function getUserAgentType(): int {
|
||||||
if (in_array($this->getUserAgent(), self::MACHINE_USER_AGENTS, true)) {
|
if (in_array($this->getUserAgent(), self::MACHINE_USER_AGENTS, true)) {
|
||||||
return self::USER_AGENT_TYPE_MACHINE;
|
return self::USER_AGENT_TYPE_MACHINE;
|
||||||
}
|
}
|
||||||
|
@ -309,7 +309,7 @@ class ClicksTest extends \MailPoetTest {
|
|||||||
expect($trackedClicks)->count(1);
|
expect($trackedClicks)->count(1);
|
||||||
$click = $trackedClicks[0];
|
$click = $trackedClicks[0];
|
||||||
expect($click->getUserAgent())->null();
|
expect($click->getUserAgent())->null();
|
||||||
expect($click->getUserAgentType())->null();
|
expect($click->getUserAgentType())->equals(UserAgentEntity::USER_AGENT_TYPE_HUMAN);
|
||||||
// Track Machine User Agent
|
// Track Machine User Agent
|
||||||
$machineUserAgentName = UserAgentEntity::MACHINE_USER_AGENTS[0];
|
$machineUserAgentName = UserAgentEntity::MACHINE_USER_AGENTS[0];
|
||||||
$data->userAgent = $machineUserAgentName;
|
$data->userAgent = $machineUserAgentName;
|
||||||
@ -318,7 +318,7 @@ class ClicksTest extends \MailPoetTest {
|
|||||||
expect($trackedClicks)->count(1);
|
expect($trackedClicks)->count(1);
|
||||||
$click = $trackedClicks[0];
|
$click = $trackedClicks[0];
|
||||||
expect($click->getUserAgent())->null();
|
expect($click->getUserAgent())->null();
|
||||||
expect($click->getUserAgentType())->null();
|
expect($click->getUserAgentType())->equals(UserAgentEntity::USER_AGENT_TYPE_HUMAN);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testItOverridesUnknownUserAgentWithHuman(): void {
|
public function testItOverridesUnknownUserAgentWithHuman(): void {
|
||||||
@ -342,7 +342,7 @@ class ClicksTest extends \MailPoetTest {
|
|||||||
expect($trackedClicks)->count(1);
|
expect($trackedClicks)->count(1);
|
||||||
$click = $trackedClicks[0];
|
$click = $trackedClicks[0];
|
||||||
expect($click->getUserAgent())->null();
|
expect($click->getUserAgent())->null();
|
||||||
expect($click->getUserAgentType())->null();
|
expect($click->getUserAgentType())->equals(UserAgentEntity::USER_AGENT_TYPE_HUMAN);
|
||||||
// Track Machine User Agent
|
// Track Machine User Agent
|
||||||
$humanUserAgentName = 'User Agent';
|
$humanUserAgentName = 'User Agent';
|
||||||
$data->userAgent = $humanUserAgentName;
|
$data->userAgent = $humanUserAgentName;
|
||||||
|
@ -283,7 +283,7 @@ class OpensTest extends \MailPoetTest {
|
|||||||
$openEntity = reset($openEntities);
|
$openEntity = reset($openEntities);
|
||||||
assert($openEntity instanceof StatisticsOpenEntity);
|
assert($openEntity instanceof StatisticsOpenEntity);
|
||||||
expect($openEntity->getUserAgent())->null();
|
expect($openEntity->getUserAgent())->null();
|
||||||
expect($openEntity->getUserAgentType())->null();
|
expect($openEntity->getUserAgentType())->equals(UserAgentEntity::USER_AGENT_TYPE_HUMAN);
|
||||||
// Track Machine User Agent
|
// Track Machine User Agent
|
||||||
$machineUserAgentName = UserAgentEntity::MACHINE_USER_AGENTS[0];
|
$machineUserAgentName = UserAgentEntity::MACHINE_USER_AGENTS[0];
|
||||||
$this->trackData->userAgent = $machineUserAgentName;
|
$this->trackData->userAgent = $machineUserAgentName;
|
||||||
@ -294,7 +294,7 @@ class OpensTest extends \MailPoetTest {
|
|||||||
$openEntity = reset($openEntities);
|
$openEntity = reset($openEntities);
|
||||||
assert($openEntity instanceof StatisticsOpenEntity);
|
assert($openEntity instanceof StatisticsOpenEntity);
|
||||||
expect($openEntity->getUserAgent())->null();
|
expect($openEntity->getUserAgent())->null();
|
||||||
expect($openEntity->getUserAgentType())->null();
|
expect($openEntity->getUserAgentType())->equals(UserAgentEntity::USER_AGENT_TYPE_HUMAN);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testItOverridesUnknownUserAgentWithHuman(): void {
|
public function testItOverridesUnknownUserAgentWithHuman(): void {
|
||||||
@ -313,7 +313,7 @@ class OpensTest extends \MailPoetTest {
|
|||||||
$openEntity = reset($openEntities);
|
$openEntity = reset($openEntities);
|
||||||
assert($openEntity instanceof StatisticsOpenEntity);
|
assert($openEntity instanceof StatisticsOpenEntity);
|
||||||
expect($openEntity->getUserAgent())->null();
|
expect($openEntity->getUserAgent())->null();
|
||||||
expect($openEntity->getUserAgentType())->null();
|
expect($openEntity->getUserAgentType())->equals(UserAgentEntity::USER_AGENT_TYPE_HUMAN);
|
||||||
// Track Human User Agent
|
// Track Human User Agent
|
||||||
$humanUserAgentName = 'User Agent';
|
$humanUserAgentName = 'User Agent';
|
||||||
$this->trackData->userAgent = $humanUserAgentName;
|
$this->trackData->userAgent = $humanUserAgentName;
|
||||||
|
Reference in New Issue
Block a user