From ee84dc382b01b87a8d5b9c51cf614bd6c30181c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Lys=C3=BD?= Date: Fri, 20 Aug 2021 11:34:17 +0200 Subject: [PATCH] Change user_agent_type column to tinyint [MAILPOET-3736] --- lib/Config/Migrator.php | 4 ++-- lib/Entities/StatisticsClickEntity.php | 10 +++++----- lib/Entities/StatisticsOpenEntity.php | 10 +++++----- lib/Entities/UserAgentEntity.php | 6 +++--- tests/integration/Statistics/Track/ClicksTest.php | 6 +++--- tests/integration/Statistics/Track/OpensTest.php | 6 +++--- 6 files changed, 21 insertions(+), 21 deletions(-) diff --git a/lib/Config/Migrator.php b/lib/Config/Migrator.php index 925c140d07..3eaadd7fa7 100644 --- a/lib/Config/Migrator.php +++ b/lib/Config/Migrator.php @@ -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),', diff --git a/lib/Entities/StatisticsClickEntity.php b/lib/Entities/StatisticsClickEntity.php index 56e096acd0..145e368ba9 100644 --- a/lib/Entities/StatisticsClickEntity.php +++ b/lib/Entities/StatisticsClickEntity.php @@ -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; } } diff --git a/lib/Entities/StatisticsOpenEntity.php b/lib/Entities/StatisticsOpenEntity.php index cbbd69ebf9..18d8e62bb7 100644 --- a/lib/Entities/StatisticsOpenEntity.php +++ b/lib/Entities/StatisticsOpenEntity.php @@ -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; } } diff --git a/lib/Entities/UserAgentEntity.php b/lib/Entities/UserAgentEntity.php index 2412b91d6f..a79f8d5b44 100644 --- a/lib/Entities/UserAgentEntity.php +++ b/lib/Entities/UserAgentEntity.php @@ -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; } diff --git a/tests/integration/Statistics/Track/ClicksTest.php b/tests/integration/Statistics/Track/ClicksTest.php index cb4fba3536..1a282bc186 100644 --- a/tests/integration/Statistics/Track/ClicksTest.php +++ b/tests/integration/Statistics/Track/ClicksTest.php @@ -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; diff --git a/tests/integration/Statistics/Track/OpensTest.php b/tests/integration/Statistics/Track/OpensTest.php index b3aedd1c83..0693aa2b3c 100644 --- a/tests/integration/Statistics/Track/OpensTest.php +++ b/tests/integration/Statistics/Track/OpensTest.php @@ -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;