Refactor MPAPI subscribeToLists to Doctrine

[MAILPOET-3820]
This commit is contained in:
Brezo Cordero
2021-12-02 16:13:08 -06:00
committed by Veljko V
parent 2bb04ed5bd
commit 81e0772459
6 changed files with 683 additions and 567 deletions

View File

@ -69,12 +69,12 @@ class SubscribersResponseBuilder {
];
}
public function build(SubscriberEntity $subscriberEntity): array {
public function build(SubscriberEntity $subscriberEntity, bool $isMPAPI = false): array {
$data = [
'id' => (string)$subscriberEntity->getId(),
'wp_user_id' => $subscriberEntity->getWpUserId(),
'is_woocommerce_user' => $subscriberEntity->getIsWoocommerceUser(),
'subscriptions' => $this->buildSubscriptions($subscriberEntity),
'subscriptions' => $this->buildSubscriptions($subscriberEntity, $isMPAPI),
'unsubscribes' => $this->buildUnsubscribes($subscriberEntity),
'status' => $subscriberEntity->getStatus(),
'last_name' => $subscriberEntity->getLastName(),
@ -93,21 +93,31 @@ class SubscribersResponseBuilder {
'unsubscribe_token' => $subscriberEntity->getUnsubscribeToken(),
'link_token' => $subscriberEntity->getLinkToken(),
];
$data = $this->buildCustomFields($subscriberEntity, $data);
return $data;
return $this->buildCustomFields($subscriberEntity, $data);
}
private function buildSubscriptions(SubscriberEntity $subscriberEntity): array {
private function buildSubscriptions(SubscriberEntity $subscriberEntity, bool $isMPAPI = false): array {
$result = [];
$subscriptions = $this->subscriberSegmentRepository->findBy(['subscriber' => $subscriberEntity]);
foreach ($subscriptions as $subscription) {
$segment = $subscription->getSegment();
if ($segment instanceof SegmentEntity) {
$result[] = [
$extraData = [];
if ( $isMPAPI ) {
$extraData = [
'id' => $subscription->getId(),
'subscriber_id' => (string)$subscriberEntity->getId(),
'created_at' => $subscription->getCreatedAt()->format(self::DATE_FORMAT),
];
}
$result[] = array_merge(
$extraData,
[
'segment_id' => (string)$segment->getId(),
'status' => $subscription->getStatus(),
'updated_at' => $subscription->getUpdatedAt()->format(self::DATE_FORMAT),
];
]);
}
}
return $result;