Add lastSubscribedAt to the subscribers API response

[MAILPOET-5894]
This commit is contained in:
Jan Lysý
2024-03-18 17:28:58 +01:00
committed by Aschepikov
parent f96e6b83d6
commit 423ce62100
3 changed files with 3 additions and 1 deletions

View File

@@ -59,6 +59,7 @@ class SubscribersResponseBuilder {
'wp_user_id' => $subscriber->getWpUserId(), 'wp_user_id' => $subscriber->getWpUserId(),
'is_woocommerce_user' => $subscriber->getIsWoocommerceUser(), 'is_woocommerce_user' => $subscriber->getIsWoocommerceUser(),
'created_at' => ($createdAt = $subscriber->getCreatedAt()) ? $createdAt->format(self::DATE_FORMAT) : null, 'created_at' => ($createdAt = $subscriber->getCreatedAt()) ? $createdAt->format(self::DATE_FORMAT) : null,
'last_subscribed_at' => ($lastSubscribedAt = $subscriber->getLastSubscribedAt()) ? $lastSubscribedAt->format(self::DATE_FORMAT) : null,
'engagement_score' => $subscriber->getEngagementScore(), 'engagement_score' => $subscriber->getEngagementScore(),
'tags' => $this->buildTags($subscriber), 'tags' => $this->buildTags($subscriber),
]; ];

View File

@@ -105,7 +105,7 @@ class SubscriberListingRepository extends ListingRepository {
} }
protected function applySelectClause(QueryBuilder $queryBuilder) { protected function applySelectClause(QueryBuilder $queryBuilder) {
$queryBuilder->select("PARTIAL s.{id,email,firstName,lastName,status,createdAt,updatedAt,countConfirmations,wpUserId,isWoocommerceUser,engagementScore}"); $queryBuilder->select("PARTIAL s.{id,email,firstName,lastName,status,createdAt,updatedAt,countConfirmations,wpUserId,isWoocommerceUser,engagementScore,lastSubscribedAt}");
} }
protected function applyFromClause(QueryBuilder $queryBuilder) { protected function applyFromClause(QueryBuilder $queryBuilder) {

View File

@@ -110,6 +110,7 @@ class SubscribersResponseBuilderTest extends \MailPoetTest {
$this->assertEquals($subscriber->getIsWoocommerceUser(), $item['is_woocommerce_user']); $this->assertEquals($subscriber->getIsWoocommerceUser(), $item['is_woocommerce_user']);
$this->assertEquals($subscriber->getStatus(), $item['status']); $this->assertEquals($subscriber->getStatus(), $item['status']);
$this->assertArrayHasKey('created_at', $item); $this->assertArrayHasKey('created_at', $item);
$this->assertArrayHasKey('last_subscribed_at', $item);
$this->assertArrayHasKey('count_confirmations', $item); $this->assertArrayHasKey('count_confirmations', $item);
$this->assertArrayHasKey('engagement_score', $item); $this->assertArrayHasKey('engagement_score', $item);
// check subscriptions // check subscriptions