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