From 22b9103460dcf2eef028db455e29cf15f74a351f Mon Sep 17 00:00:00 2001 From: Amine Ben hammou Date: Mon, 3 Feb 2020 12:19:15 +0100 Subject: [PATCH] Fix statistics [MAILPOET-2503] --- .../NewslettersResponseBuilder.php | 8 ++++---- lib/Newsletter/Statistics/NewsletterStatistics.php | 12 ++++++++++++ .../Statistics/NewsletterWooCommerceRevenue.php | 14 +++++++++++++- 3 files changed, 29 insertions(+), 5 deletions(-) diff --git a/lib/API/JSON/ResponseBuilders/NewslettersResponseBuilder.php b/lib/API/JSON/ResponseBuilders/NewslettersResponseBuilder.php index 8e35a234d7..00697947bf 100644 --- a/lib/API/JSON/ResponseBuilders/NewslettersResponseBuilder.php +++ b/lib/API/JSON/ResponseBuilders/NewslettersResponseBuilder.php @@ -59,18 +59,18 @@ class NewslettersResponseBuilder { $data['options'] = $this->buildOptions($newsletter); } if ($relation === self::RELATION_TOTAL_SENT) { - $data['totalSent'] = $this->newslettersStatsRepository->getTotalSentCount($newsletter); + $data['total_sent'] = $this->newslettersStatsRepository->getTotalSentCount($newsletter); } if ($relation === self::RELATION_CHILDREN_COUNT) { - $data['childrenCount'] = $this->newslettersStatsRepository->getChildrenCount($newsletter); + $data['children_count'] = $this->newslettersStatsRepository->getChildrenCount($newsletter); } if ($relation === self::RELATION_SCHEDULED) { - $data['totalScheduled'] = (int)SendingQueue::findTaskByNewsletterId($newsletter->getId()) + $data['total_scheduled'] = (int)SendingQueue::findTaskByNewsletterId($newsletter->getId()) ->where('tasks.status', SendingQueue::STATUS_SCHEDULED) ->count(); } if ($relation === self::RELATION_STATISTICS) { - $data['statistics'] = $this->newslettersStatsRepository->getStatistics($newsletter); + $data['statistics'] = $this->newslettersStatsRepository->getStatistics($newsletter)->asArray(); } } return $data; diff --git a/lib/Newsletter/Statistics/NewsletterStatistics.php b/lib/Newsletter/Statistics/NewsletterStatistics.php index b2c6da17b8..8118b8d93c 100644 --- a/lib/Newsletter/Statistics/NewsletterStatistics.php +++ b/lib/Newsletter/Statistics/NewsletterStatistics.php @@ -62,4 +62,16 @@ class NewsletterStatistics { return $this->wooCommerceRevenue; } + /** + * @return array + */ + public function asArray() { + return [ + 'clicked' => (int)$this->clickCount, + 'opened' => (int)$this->openCount, + 'unsubscribed' => (int)$this->unsubscribeCount, + 'revenue' => empty($this->wooCommerceRevenue) ? null : $this->wooCommerceRevenue->asArray(), + ]; + } + } diff --git a/lib/Newsletter/Statistics/NewsletterWooCommerceRevenue.php b/lib/Newsletter/Statistics/NewsletterWooCommerceRevenue.php index 559ece5b8f..493334d0cb 100644 --- a/lib/Newsletter/Statistics/NewsletterWooCommerceRevenue.php +++ b/lib/Newsletter/Statistics/NewsletterWooCommerceRevenue.php @@ -42,7 +42,19 @@ class NewsletterWooCommerceRevenue { /** @return string */ public function getFormattedValue() { - return $this->wooCommerceHelper->getRawPrice($this->value, ['currency' => $this->getCurrency()]); + return $this->wooCommerceHelper->getRawPrice($this->value, ['currency' => $this->currency]); + } + + /** + * @return array + */ + public function asArray() { + return [ + 'currency' => $this->currency, + 'value' => (float)$this->value, + 'count' => (int)$this->ordersCount, + 'formatted' => $this->getFormattedValue(), + ]; } }