segmentsRepository = $segmentsRepository; $this->servicesChecker = $servicesChecker; $this->bridge = $bridge; $this->authorizedSenderDomainController = $authorizedSenderDomainController; $this->authorizedEmailsController = $authorizedEmailsController; } /** @return mixed[] */ public function getContextData(): array { $data = [ 'segments' => $this->getSegments(), 'userRoles' => $this->getUserRoles(), ]; if ($this->isMSSEnabled()) { $data['senderDomainsConfig'] = $this->getSenderDomainsConfig(); } return $data; } private function getSenderDomainsConfig(): array { $senderDomainsConfig = $this->authorizedSenderDomainController->getContextDataForAutomations(); $senderDomainsConfig['authorizedEmails'] = $this->authorizedEmailsController->getAuthorizedEmailAddresses(); return $senderDomainsConfig; } private function isMSSEnabled(): bool { $mpApiKeyValid = $this->servicesChecker->isMailPoetAPIKeyValid(false, true); return $mpApiKeyValid && $this->bridge->isMailpoetSendingServiceEnabled(); } private function getSegments(): array { $segments = []; foreach ($this->segmentsRepository->findAll() as $segment) { $segments[] = [ 'id' => $segment->getId(), 'name' => $segment->getName(), 'type' => $segment->getType(), ]; } return $segments; } private function getUserRoles(): array { $userRoles = []; foreach (wp_roles()->roles as $role => $details) { $userRoles[] = [ 'id' => $role, 'name' => $details['name'], ]; } return $userRoles; } }