/** * @param MailQueue $row * @param string $type * @return string */ public function __invoke(MailQueue $row, $type) { if (!$row->has($type)) { throw new InvalidArgumentException('wrong type given in class ' . __CLASS__); } $method = 'get' . ucwords($type); $address = $row->{$method}(); if (null === $address) { $address = $this->getMailOptions()->getAddressList()[$row->getTransport()]; if (!$address instanceof Address) { $address = new Address($address['address'], $address['name']); } } if ($address instanceof Address) { $address = $address->toString(); } return $address; }
/** * @param \UthandoMail\Model\MailQueue $object * @return array */ public function extract($object) { return ['mailQueueId' => $object->getMailQueueId(), 'recipient' => $this->extractValue('recipient', $object->getRecipient()), 'sender' => $this->extractValue('sender', $object->getSender()), 'subject' => $object->getSubject(), 'body' => $this->extractValue('body', $object->getBody()), 'layout' => $this->extractValue('layout', $object->getLayout()), 'transport' => $object->getTransport(), 'renderer' => $object->getRenderer(), 'priority' => $object->getPriority(), 'dateCreated' => $this->extractValue('dateCreated', $object->getDateCreated())]; }