Change user_agent_type column to tinyint

[MAILPOET-3736]
This commit is contained in:
Jan Lysý
2021-08-20 11:34:17 +02:00
committed by Veljko V
parent 292f075abe
commit ee84dc382b
6 changed files with 21 additions and 21 deletions

View File

@ -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),',

View File

@ -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;
} }
} }

View File

@ -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;
} }
} }

View File

@ -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;
} }

View File

@ -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;

View File

@ -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;