/** * @param Email $email * @param array $folders * * @return EmailUser[] */ protected function processFolders(Email $email, $folders) { $apiOrigin = $this->getEmailOrigin(); $emailUserList = []; foreach ($folders as $item) { $origin = $item['origin'] ?: $this->getEmailOrigin(); if ($origin->getId() && $origin->getId() !== $apiOrigin->getId()) { continue; } $folder = $origin->getFolder($item['type'], $item['fullName']); if (!$folder) { $folder = $this->emailEntityBuilder->folder($item['type'], $item['fullName'], $item['name']); $origin->addFolder($folder); } else { $this->emailEntityBuilder->setFolder($folder); } $emailUser = new EmailUser(); $emailUser->setEmail($email); $emailUser->setOwner($apiOrigin->getOwner()); $emailUser->setOrganization($apiOrigin->getOrganization()); $emailUser->setFolder($folder); $emailUserList[] = $emailUser; } return $emailUserList; }