Spaces:
No application file
No application file
| namespace Mautic\EmailBundle\Entity; | |
| use Doctrine\ORM\NoResultException; | |
| use Mautic\CoreBundle\Entity\CommonRepository; | |
| /** | |
| * @extends CommonRepository<Copy> | |
| */ | |
| class CopyRepository extends CommonRepository | |
| { | |
| /** | |
| * @param string $hash | |
| * @param string $subject | |
| * @param string $body | |
| * @param string $bodyText | |
| */ | |
| public function saveCopy($hash, $subject, $body, $bodyText) | |
| { | |
| $db = $this->getEntityManager()->getConnection(); | |
| try { | |
| $db->insert( | |
| MAUTIC_TABLE_PREFIX.'email_copies', | |
| [ | |
| 'id' => $hash, | |
| 'body' => $body, | |
| 'body_text' => $bodyText, | |
| 'subject' => $subject, | |
| 'date_created' => (new \DateTime())->setTimezone(new \DateTimeZone('UTC'))->format('Y-m-d H:i:s'), | |
| ] | |
| ); | |
| return true; | |
| } catch (\Exception $e) { | |
| error_log($e); | |
| return false; | |
| } | |
| } | |
| /** | |
| * @param string $string md5 hash or content | |
| * | |
| * @return array | |
| */ | |
| public function findByHash($string, $subject = null) | |
| { | |
| if (null !== $subject) { | |
| // Combine subject with $string and hash together | |
| $string = $subject.$string; | |
| } | |
| // Assume that $string is already a md5 hash if 32 characters | |
| $hash = (32 !== strlen($string)) ? $hash = md5($string) : $string; | |
| $q = $this->createQueryBuilder($this->getTableAlias()); | |
| $q->where( | |
| $q->expr()->eq($this->getTableAlias().'.id', ':id') | |
| ) | |
| ->setParameter('id', $hash); | |
| try { | |
| $result = $q->getQuery()->getSingleResult(); | |
| } catch (NoResultException) { | |
| $result = null; | |
| } | |
| return $result; | |
| } | |
| public function getTableAlias(): string | |
| { | |
| return 'ec'; | |
| } | |
| } | |