Improve typehints and doctypes for the woo revenue tracking

[MAILPOET-5014]
This commit is contained in:
Rostislav Wolny
2023-01-26 17:13:28 +01:00
committed by Aschepikov
parent 5d3b26bb58
commit f66be1b947
4 changed files with 13 additions and 17 deletions

View File

@@ -150,6 +150,9 @@ class HooksWooCommerce {
} }
public function addTrackingData($data) { public function addTrackingData($data) {
if (!is_array($data)) {
return $data;
}
return $this->tracker->addTrackingData($data); return $this->tracker->addTrackingData($data);
} }

View File

@@ -47,7 +47,7 @@ class StatisticsWooCommercePurchasesRepository extends Repository {
$this->flush(); $this->flush();
} }
public function getRevenuesByCampaigns() { public function getRevenuesByCampaigns(): array {
$revenueStatsTable = $this->entityManager->getClassMetadata(StatisticsWooCommercePurchaseEntity::class)->getTableName(); $revenueStatsTable = $this->entityManager->getClassMetadata(StatisticsWooCommercePurchaseEntity::class)->getTableName();
$newsletterTable = $this->entityManager->getClassMetadata(NewsletterEntity::class)->getTableName(); $newsletterTable = $this->entityManager->getClassMetadata(NewsletterEntity::class)->getTableName();

View File

@@ -32,14 +32,7 @@ class Tracker {
$this->loggerFactory = $loggerFactory; $this->loggerFactory = $loggerFactory;
} }
/** public function addTrackingData(array $data): array {
* @param array $data
* @return array
*/
public function addTrackingData($data): array {
if (!is_array($data)) {
return $data;
}
try { try {
$analyticsData = $this->newslettersRepository->getAnalytics(); $analyticsData = $this->newslettersRepository->getAnalytics();
$data['extensions']['mailpoet'] = [ $data['extensions']['mailpoet'] = [

View File

@@ -24,7 +24,7 @@ class TrackerTest extends \MailPoetTest {
/** @var Tracker */ /** @var Tracker */
private $tracker; private $tracker;
public function _before() { public function _before(): void {
parent::_before(); parent::_before();
$this->cleanUp(); $this->cleanUp();
$this->subscriber = (new Subscriber())->create(); $this->subscriber = (new Subscriber())->create();
@@ -37,14 +37,14 @@ class TrackerTest extends \MailPoetTest {
$this->entityManager->flush(); $this->entityManager->flush();
} }
public function testItAddsTrackingData() { public function testItAddsTrackingData(): void {
$data = $this->tracker->addTrackingData(['extensions' => []]); $data = $this->tracker->addTrackingData(['extensions' => []]);
expect($data['extensions']['mailpoet'])->notEmpty(); expect($data['extensions']['mailpoet'])->notEmpty();
expect($data['extensions']['mailpoet']['campaigns_count'])->notNull(); expect($data['extensions']['mailpoet']['campaigns_count'])->notNull();
expect($data['extensions']['mailpoet']['currency'])->notNull(); expect($data['extensions']['mailpoet']['currency'])->notNull();
} }
public function testItAddsCampaignRevenuesForStandardNewsletters() { public function testItAddsCampaignRevenuesForStandardNewsletters(): void {
$newsletter1 = (new Newsletter())->withSendingQueue()->withType(NewsletterEntity::TYPE_STANDARD)->create(); $newsletter1 = (new Newsletter())->withSendingQueue()->withType(NewsletterEntity::TYPE_STANDARD)->create();
$newsletter2 = (new Newsletter())->withSendingQueue()->withType(NewsletterEntity::TYPE_STANDARD)->create(); $newsletter2 = (new Newsletter())->withSendingQueue()->withType(NewsletterEntity::TYPE_STANDARD)->create();
$this->createRevenueRecord($newsletter1, $this->createOrderData(1, 'USD', 10)); $this->createRevenueRecord($newsletter1, $this->createOrderData(1, 'USD', 10));
@@ -63,7 +63,7 @@ class TrackerTest extends \MailPoetTest {
expect($mailPoetData['campaign_' . $newsletter2->getId() . '_orders_count'])->equals(1); expect($mailPoetData['campaign_' . $newsletter2->getId() . '_orders_count'])->equals(1);
} }
public function testItAddsCampaignRevenuesForAutomaticCampaigns() { public function testItAddsCampaignRevenuesForAutomaticCampaigns(): void {
$newsletter1 = (new Newsletter())->withSendingQueue()->withType(NewsletterEntity::TYPE_WELCOME)->create(); $newsletter1 = (new Newsletter())->withSendingQueue()->withType(NewsletterEntity::TYPE_WELCOME)->create();
$newsletter2 = (new Newsletter())->withSendingQueue()->withType(NewsletterEntity::TYPE_AUTOMATIC)->create(); $newsletter2 = (new Newsletter())->withSendingQueue()->withType(NewsletterEntity::TYPE_AUTOMATIC)->create();
$newsletter3 = (new Newsletter())->withSendingQueue()->withType(NewsletterEntity::TYPE_AUTOMATION)->create(); $newsletter3 = (new Newsletter())->withSendingQueue()->withType(NewsletterEntity::TYPE_AUTOMATION)->create();
@@ -87,7 +87,7 @@ class TrackerTest extends \MailPoetTest {
expect($mailPoetData['campaign_' . $newsletter3->getId() . '_orders_count'])->equals(1); expect($mailPoetData['campaign_' . $newsletter3->getId() . '_orders_count'])->equals(1);
} }
public function testItAddsTotalCampaigns() { public function testItAddsTotalCampaigns(): void {
(new Newsletter())->withSendingQueue()->withType(NewsletterEntity::TYPE_WELCOME)->withStatus(NewsletterEntity::STATUS_ACTIVE)->create(); (new Newsletter())->withSendingQueue()->withType(NewsletterEntity::TYPE_WELCOME)->withStatus(NewsletterEntity::STATUS_ACTIVE)->create();
(new Newsletter())->withSendingQueue()->withType(NewsletterEntity::TYPE_AUTOMATIC)->withStatus(NewsletterEntity::STATUS_ACTIVE)->create(); (new Newsletter())->withSendingQueue()->withType(NewsletterEntity::TYPE_AUTOMATIC)->withStatus(NewsletterEntity::STATUS_ACTIVE)->create();
(new Newsletter())->withSendingQueue()->withType(NewsletterEntity::TYPE_AUTOMATION)->withStatus(NewsletterEntity::STATUS_ACTIVE)->create(); (new Newsletter())->withSendingQueue()->withType(NewsletterEntity::TYPE_AUTOMATION)->withStatus(NewsletterEntity::STATUS_ACTIVE)->create();
@@ -103,7 +103,7 @@ class TrackerTest extends \MailPoetTest {
expect($campaignsCount)->equals(6); expect($campaignsCount)->equals(6);
} }
public function testItAddsCampaignRevenuesPostNotificationsUnderTheParentId() { public function testItAddsCampaignRevenuesPostNotificationsUnderTheParentId(): void {
$notificationParent = (new Newsletter())->withSendingQueue()->withType(NewsletterEntity::TYPE_NOTIFICATION)->create(); $notificationParent = (new Newsletter())->withSendingQueue()->withType(NewsletterEntity::TYPE_NOTIFICATION)->create();
$notificationHistory1 = (new Newsletter())->withSendingQueue()->withType(NewsletterEntity::TYPE_NOTIFICATION_HISTORY)->create(); $notificationHistory1 = (new Newsletter())->withSendingQueue()->withType(NewsletterEntity::TYPE_NOTIFICATION_HISTORY)->create();
$notificationHistory1->setParent($notificationParent); $notificationHistory1->setParent($notificationParent);
@@ -126,7 +126,7 @@ class TrackerTest extends \MailPoetTest {
/** /**
* Because we save the revenue for every recent click, we need to make sure we count the order only once (for the first click) * Because we save the revenue for every recent click, we need to make sure we count the order only once (for the first click)
*/ */
public function testItTracksTheRevenueOncePerOrder() { public function testItTracksTheRevenueOncePerOrder(): void {
$newsletter1 = (new Newsletter())->withSendingQueue()->create(); $newsletter1 = (new Newsletter())->withSendingQueue()->create();
$newsletter2 = (new Newsletter())->withSendingQueue()->create(); $newsletter2 = (new Newsletter())->withSendingQueue()->create();
$newsletter3 = (new Newsletter())->withSendingQueue()->create(); $newsletter3 = (new Newsletter())->withSendingQueue()->create();
@@ -167,7 +167,7 @@ class TrackerTest extends \MailPoetTest {
return (new StatisticsWooCommercePurchases($click, $orderData))->create(); return (new StatisticsWooCommercePurchases($click, $orderData))->create();
} }
private function cleanUp() { private function cleanUp(): void {
$this->truncateEntity(NewsletterLinkEntity::class); $this->truncateEntity(NewsletterLinkEntity::class);
$this->truncateEntity(NewsletterEntity::class); $this->truncateEntity(NewsletterEntity::class);
$this->truncateEntity(SubscriberEntity::class); $this->truncateEntity(SubscriberEntity::class);