Skip to content

Commit

Permalink
Make Phpstan happy
Browse files Browse the repository at this point in the history
  • Loading branch information
stefanzweifel committed Mar 26, 2024
1 parent f527a5d commit 2326c06
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 11 deletions.
3 changes: 2 additions & 1 deletion phpstan.neon.dist
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ includes:
- phpstan-baseline.neon

parameters:
level: 8
level: 9
paths:
- src
- config
Expand All @@ -11,4 +11,5 @@ parameters:
checkOctaneCompatibility: true
checkModelProperties: true
checkMissingIterableValueType: false
checkGenericClassInNonGenericObjectType: false

7 changes: 5 additions & 2 deletions src/Listeners/AttachSendUuidListener.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,13 @@ class AttachSendUuidListener
{
public function handle(MessageSending $event): void
{
if ($event->message->getHeaders()->has(config('sends.headers.send_uuid'))) {
/** @var string $sendUuidHeader */
$sendUuidHeader = config('sends.headers.send_uuid');

if ($event->message->getHeaders()->has($sendUuidHeader)) {
return;
}

$event->message->getHeaders()->addTextHeader(config('sends.headers.send_uuid'), Str::uuid()->toString());
$event->message->getHeaders()->addTextHeader($sendUuidHeader, Str::uuid()->toString());
}
}
34 changes: 26 additions & 8 deletions src/Listeners/StoreOutgoingMailListener.php
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,10 @@ public function handle(MessageSent $event): void

protected function createSendModel(MessageSent $event): Send
{
return config('sends.send_model')::forceCreate(
/** @var Send $modelClass */
$modelClass = config('sends.send_model');

return $modelClass::forceCreate(
$this->getSendAttributes($event, $this->getDefaultSendAttributes($event))
);
}
Expand Down Expand Up @@ -55,15 +58,18 @@ protected function getDefaultSendAttributes(MessageSent $event): array

protected function getSendUuid(MessageSent $event): ?string
{
if (config('sends.headers.send_uuid') === 'Message-ID') {
/** @var string $sendUuidHeader */
$sendUuidHeader = config('sends.headers.send_uuid');

if ($sendUuidHeader === 'Message-ID') {
return $event->sent->getMessageId();
}

if (! $event->message->getHeaders()->has(config('sends.headers.send_uuid'))) {
if (! $event->message->getHeaders()->has($sendUuidHeader)) {
return null;
}

$headerValue = $event->message->getHeaders()->get(config('sends.headers.send_uuid'));
$headerValue = $event->message->getHeaders()->get($sendUuidHeader);

if (is_null($headerValue)) {
return null;
Expand All @@ -74,16 +80,20 @@ protected function getSendUuid(MessageSent $event): ?string

protected function getMailClassHeaderValue(MessageSent $event): ?string
{
if (! $event->message->getHeaders()->has(config('sends.headers.mail_class'))) {
/** @var string $mailClassHeader */
$mailClassHeader = config('sends.headers.mail_class');

if (! $event->message->getHeaders()->has($mailClassHeader)) {
return null;
}

$headerValue = $event->message->getHeaders()->get(config('sends.headers.mail_class'));
$headerValue = $event->message->getHeaders()->get($mailClassHeader);

if (is_null($headerValue)) {
return null;
}

/** @phpstan-var string */
return decrypt($headerValue->getBodyAsString());
}

Expand All @@ -93,6 +103,7 @@ protected function getMailClassHeaderValue(MessageSent $event): ?string
protected function attachModelsToSendModel(MessageSent $event, Send $send): void
{
$this->getModels($event)
/** @phpstan-ignore-next-line */
->each(fn (HasSends $model) => $model->sends()->attach($send));
}

Expand All @@ -101,26 +112,32 @@ protected function attachModelsToSendModel(MessageSent $event, Send $send): void
*/
protected function getModels(MessageSent $event): Collection
{
if (! $event->message->getHeaders()->has(config('sends.headers.models'))) {
/** @var string $modelsHeader */
$modelsHeader = config('sends.headers.models');

if (! $event->message->getHeaders()->has($modelsHeader)) {
return collect([]);
}

$headerValue = $event->message->getHeaders()->get(config('sends.headers.models'));
$headerValue = $event->message->getHeaders()->get($modelsHeader);

if (is_null($headerValue)) {
return collect([]);
}

/** @var string $models */
$models = decrypt($headerValue->getBodyAsString());

/** @var array<array<string, mixed>> $modelsArray */
$modelsArray = json_decode($models, true, 512, JSON_THROW_ON_ERROR);

return collect($modelsArray)
->map(function (array $tuple): Model {
/** @var Model $model */
$model = $tuple['model'];
$id = $tuple['id'];

/** @phpstan-ignore-next-line */
return $model::find($id);
})
->filter(fn (Model $model) => (new ReflectionClass($model))->implementsInterface(HasSends::class));
Expand All @@ -132,6 +149,7 @@ protected function getContent(MessageSent $event): ?string
return null;
}

/** @phpstan-ignore-next-line */
return $event->message->getHtmlBody();
}

Expand Down

0 comments on commit 2326c06

Please sign in to comment.