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) {
if (!is_array($data)) {
return $data;
}
return $this->tracker->addTrackingData($data);
}

View File

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

View File

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

View File

@ -24,7 +24,7 @@ class TrackerTest extends \MailPoetTest {
/** @var Tracker */
private $tracker;
public function _before() {
public function _before(): void {
parent::_before();
$this->cleanUp();
$this->subscriber = (new Subscriber())->create();
@ -37,14 +37,14 @@ class TrackerTest extends \MailPoetTest {
$this->entityManager->flush();
}
public function testItAddsTrackingData() {
public function testItAddsTrackingData(): void {
$data = $this->tracker->addTrackingData(['extensions' => []]);
expect($data['extensions']['mailpoet'])->notEmpty();
expect($data['extensions']['mailpoet']['campaigns_count'])->notNull();
expect($data['extensions']['mailpoet']['currency'])->notNull();
}
public function testItAddsCampaignRevenuesForStandardNewsletters() {
public function testItAddsCampaignRevenuesForStandardNewsletters(): void {
$newsletter1 = (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));
@ -63,7 +63,7 @@ class TrackerTest extends \MailPoetTest {
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();
$newsletter2 = (new Newsletter())->withSendingQueue()->withType(NewsletterEntity::TYPE_AUTOMATIC)->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);
}
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_AUTOMATIC)->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);
}
public function testItAddsCampaignRevenuesPostNotificationsUnderTheParentId() {
public function testItAddsCampaignRevenuesPostNotificationsUnderTheParentId(): void {
$notificationParent = (new Newsletter())->withSendingQueue()->withType(NewsletterEntity::TYPE_NOTIFICATION)->create();
$notificationHistory1 = (new Newsletter())->withSendingQueue()->withType(NewsletterEntity::TYPE_NOTIFICATION_HISTORY)->create();
$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)
*/
public function testItTracksTheRevenueOncePerOrder() {
public function testItTracksTheRevenueOncePerOrder(): void {
$newsletter1 = (new Newsletter())->withSendingQueue()->create();
$newsletter2 = (new Newsletter())->withSendingQueue()->create();
$newsletter3 = (new Newsletter())->withSendingQueue()->create();
@ -167,7 +167,7 @@ class TrackerTest extends \MailPoetTest {
return (new StatisticsWooCommercePurchases($click, $orderData))->create();
}
private function cleanUp() {
private function cleanUp(): void {
$this->truncateEntity(NewsletterLinkEntity::class);
$this->truncateEntity(NewsletterEntity::class);
$this->truncateEntity(SubscriberEntity::class);