Add logging

This commit is contained in:
nupplaPhil 2020-02-04 21:32:18 +01:00
parent 0b94b84dc7
commit 11c831945c
No known key found for this signature in database
GPG Key ID: D8365C3D36B77D90
5 changed files with 20 additions and 14 deletions

View File

@ -11,6 +11,7 @@ use Friendica\Model\User;
use Friendica\Network\HTTPException\InternalServerErrorException; use Friendica\Network\HTTPException\InternalServerErrorException;
use Friendica\Object\Email; use Friendica\Object\Email;
use Friendica\Object\EMail\IEmail; use Friendica\Object\EMail\IEmail;
use Psr\Log\LoggerInterface;
/** /**
* A base class for building new emails * A base class for building new emails
@ -26,6 +27,8 @@ abstract class MailBuilder
protected $config; protected $config;
/** @var BaseURL */ /** @var BaseURL */
protected $baseUrl; protected $baseUrl;
/** @var LoggerInterface */
protected $logger;
/** @var string */ /** @var string */
protected $headers; protected $headers;
@ -42,11 +45,12 @@ abstract class MailBuilder
/** @var int */ /** @var int */
protected $recipientUid = null; protected $recipientUid = null;
public function __construct(L10n $l10n, BaseURL $baseUrl, IConfig $config) public function __construct(L10n $l10n, BaseURL $baseUrl, IConfig $config, LoggerInterface $logger)
{ {
$this->l10n = $l10n; $this->l10n = $l10n;
$this->baseUrl = $baseUrl; $this->baseUrl = $baseUrl;
$this->config = $config; $this->config = $config;
$this->logger = $logger;
$hostname = $baseUrl->getHostname(); $hostname = $baseUrl->getHostname();
if (strpos($hostname, ':')) { if (strpos($hostname, ':')) {
@ -97,6 +101,7 @@ abstract class MailBuilder
try { try {
$this->l10n = $user['language'] ? $this->l10n->withLang($user['language']) : $this->l10n; $this->l10n = $user['language'] ? $this->l10n->withLang($user['language']) : $this->l10n;
} catch (Exception $e) { } catch (Exception $e) {
$this->logger->warning('cannot use language.', ['user' => $user, 'exception' => $e]);
} }
return $this; return $this;

View File

@ -3,13 +3,13 @@
namespace Friendica\Util\EMailer; namespace Friendica\Util\EMailer;
use Exception; use Exception;
use Friendica\App;
use Friendica\App\BaseURL; use Friendica\App\BaseURL;
use Friendica\Content\Text\BBCode; use Friendica\Content\Text\BBCode;
use Friendica\Core\Config\IConfig; use Friendica\Core\Config\IConfig;
use Friendica\Core\L10n; use Friendica\Core\L10n;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Network\HTTPException\InternalServerErrorException; use Friendica\Network\HTTPException\InternalServerErrorException;
use Psr\Log\LoggerInterface;
/** /**
* Builder for system-wide emails without any dependency to concrete entities (like items, activities, ..) * Builder for system-wide emails without any dependency to concrete entities (like items, activities, ..)
@ -26,9 +26,10 @@ class SystemMailBuilder extends MailBuilder
/** @var string */ /** @var string */
protected $siteAdmin; protected $siteAdmin;
public function __construct(L10n $l10n, BaseURL $baseUrl, IConfig $config, string $siteEmailAddress, string $siteName) public function __construct(L10n $l10n, BaseURL $baseUrl, IConfig $config, LoggerInterface $logger,
string$siteEmailAddress, string $siteName)
{ {
parent::__construct($l10n, $baseUrl, $config); parent::__construct($l10n, $baseUrl, $config, $logger);
if ($this->config->get('config', 'admin_name')) { if ($this->config->get('config', 'admin_name')) {
$this->siteAdmin = $l10n->t('%1$s, %2$s Administrator', $this->config->get('config', 'admin_name'), $siteName); $this->siteAdmin = $l10n->t('%1$s, %2$s Administrator', $this->config->get('config', 'admin_name'), $siteName);

View File

@ -85,7 +85,7 @@ class Emailer
*/ */
public function newSystemMail() public function newSystemMail()
{ {
return new SystemMailBuilder($this->l10n, $this->baseUrl, $this->config, return new SystemMailBuilder($this->l10n, $this->baseUrl, $this->config, $this->logger,
$this->getSiteEmailAddress(), $this->getSiteEmailName()); $this->getSiteEmailAddress(), $this->getSiteEmailName());
} }

View File

@ -10,6 +10,7 @@ use Friendica\Test\MockedTest;
use Friendica\Test\Util\SampleMailBuilder; use Friendica\Test\Util\SampleMailBuilder;
use Friendica\Test\Util\VFSTrait; use Friendica\Test\Util\VFSTrait;
use Friendica\Util\EMailer\MailBuilder; use Friendica\Util\EMailer\MailBuilder;
use Psr\Log\NullLogger;
/** /**
* This class tests the "MailBuilder" (@see MailBuilder ) * This class tests the "MailBuilder" (@see MailBuilder )
@ -62,7 +63,7 @@ class MailBuilderTest extends MockedTest
*/ */
public function testBuilderInstance() public function testBuilderInstance()
{ {
$builder = new SampleMailBuilder($this->l10n, $this->baseUrl, $this->config); $builder = new SampleMailBuilder($this->l10n, $this->baseUrl, $this->config, new NullLogger());
$this->assertInstanceOf(MailBuilder::class, $builder); $this->assertInstanceOf(MailBuilder::class, $builder);
} }
@ -82,7 +83,7 @@ class MailBuilderTest extends MockedTest
*/ */
public function testBuilderWithRawEmail() public function testBuilderWithRawEmail()
{ {
$builder = new SampleMailBuilder($this->l10n, $this->baseUrl, $this->config); $builder = new SampleMailBuilder($this->l10n, $this->baseUrl, $this->config, new NullLogger());
$testEmail = $builder $testEmail = $builder
->withMessage('Subject', 'Html', 'text') ->withMessage('Subject', 'Html', 'text')
@ -112,7 +113,7 @@ class MailBuilderTest extends MockedTest
*/ */
public function testBuilderWithEmptyMail() public function testBuilderWithEmptyMail()
{ {
$builder = new SampleMailBuilder($this->l10n, $this->baseUrl, $this->config); $builder = new SampleMailBuilder($this->l10n, $this->baseUrl, $this->config, new NullLogger());
$builder->build(true); $builder->build(true);
} }
@ -125,7 +126,7 @@ class MailBuilderTest extends MockedTest
*/ */
public function testBuilderWithEmptySender() public function testBuilderWithEmptySender()
{ {
$builder = new SampleMailBuilder($this->l10n, $this->baseUrl, $this->config); $builder = new SampleMailBuilder($this->l10n, $this->baseUrl, $this->config, new NullLogger());
$builder $builder
->withRecipient('test@friendica.local') ->withRecipient('test@friendica.local')
@ -137,7 +138,7 @@ class MailBuilderTest extends MockedTest
*/ */
public function testBuilderWithoutMessage() public function testBuilderWithoutMessage()
{ {
$builder = new SampleMailBuilder($this->l10n, $this->baseUrl, $this->config); $builder = new SampleMailBuilder($this->l10n, $this->baseUrl, $this->config, new NullLogger());
$testEmail = $builder $testEmail = $builder
->withRecipient('recipient@friendica.local') ->withRecipient('recipient@friendica.local')
@ -158,7 +159,7 @@ class MailBuilderTest extends MockedTest
*/ */
public function testBuilderWithJustPreamble() public function testBuilderWithJustPreamble()
{ {
$builder = new SampleMailBuilder($this->l10n, $this->baseUrl, $this->config); $builder = new SampleMailBuilder($this->l10n, $this->baseUrl, $this->config, new NullLogger());
$testEmail = $builder $testEmail = $builder
->withRecipient('recipient@friendica.local') ->withRecipient('recipient@friendica.local')

View File

@ -5,12 +5,11 @@ namespace Friendica\Test\src\Util\Emailer;
use Friendica\App\BaseURL; use Friendica\App\BaseURL;
use Friendica\Core\Config\IConfig; use Friendica\Core\Config\IConfig;
use Friendica\Core\L10n; use Friendica\Core\L10n;
use Friendica\Object\EMail\IEmail;
use Friendica\Test\MockedTest; use Friendica\Test\MockedTest;
use Friendica\Test\Util\SampleMailBuilder;
use Friendica\Test\Util\VFSTrait; use Friendica\Test\Util\VFSTrait;
use Friendica\Util\EMailer\MailBuilder; use Friendica\Util\EMailer\MailBuilder;
use Friendica\Util\EMailer\SystemMailBuilder; use Friendica\Util\EMailer\SystemMailBuilder;
use Psr\Log\NullLogger;
class SystemMailBuilderTest extends MockedTest class SystemMailBuilderTest extends MockedTest
{ {
@ -50,7 +49,7 @@ class SystemMailBuilderTest extends MockedTest
*/ */
public function testBuilderInstance() public function testBuilderInstance()
{ {
$builder = new SystemMailBuilder($this->l10n, $this->baseUrl, $this->config, 'moreply@friendica.local', 'FriendicaSite'); $builder = new SystemMailBuilder($this->l10n, $this->baseUrl, $this->config, new NullLogger(), 'moreply@friendica.local', 'FriendicaSite');
$this->assertInstanceOf(MailBuilder::class, $builder); $this->assertInstanceOf(MailBuilder::class, $builder);
$this->assertInstanceOf(SystemMailBuilder::class, $builder); $this->assertInstanceOf(SystemMailBuilder::class, $builder);