@@ -26,7 +26,10 @@ public function handle(MessageSent $event): void
26
26
27
27
protected function createSendModel (MessageSent $ event ): Send
28
28
{
29
- return config ('sends.send_model ' )::forceCreate (
29
+ /** @var Send $modelClass */
30
+ $ modelClass = config ('sends.send_model ' );
31
+
32
+ return $ modelClass ::forceCreate (
30
33
$ this ->getSendAttributes ($ event , $ this ->getDefaultSendAttributes ($ event ))
31
34
);
32
35
}
@@ -55,15 +58,18 @@ protected function getDefaultSendAttributes(MessageSent $event): array
55
58
56
59
protected function getSendUuid (MessageSent $ event ): ?string
57
60
{
58
- if (config ('sends.headers.send_uuid ' ) === 'Message-ID ' ) {
61
+ /** @var string $sendUuidHeader */
62
+ $ sendUuidHeader = config ('sends.headers.send_uuid ' );
63
+
64
+ if ($ sendUuidHeader === 'Message-ID ' ) {
59
65
return $ event ->sent ->getMessageId ();
60
66
}
61
67
62
- if (! $ event ->message ->getHeaders ()->has (config ( ' sends.headers.send_uuid ' ) )) {
68
+ if (! $ event ->message ->getHeaders ()->has ($ sendUuidHeader )) {
63
69
return null ;
64
70
}
65
71
66
- $ headerValue = $ event ->message ->getHeaders ()->get (config ( ' sends.headers.send_uuid ' ) );
72
+ $ headerValue = $ event ->message ->getHeaders ()->get ($ sendUuidHeader );
67
73
68
74
if (is_null ($ headerValue )) {
69
75
return null ;
@@ -74,16 +80,20 @@ protected function getSendUuid(MessageSent $event): ?string
74
80
75
81
protected function getMailClassHeaderValue (MessageSent $ event ): ?string
76
82
{
77
- if (! $ event ->message ->getHeaders ()->has (config ('sends.headers.mail_class ' ))) {
83
+ /** @var string $mailClassHeader */
84
+ $ mailClassHeader = config ('sends.headers.mail_class ' );
85
+
86
+ if (! $ event ->message ->getHeaders ()->has ($ mailClassHeader )) {
78
87
return null ;
79
88
}
80
89
81
- $ headerValue = $ event ->message ->getHeaders ()->get (config ( ' sends.headers.mail_class ' ) );
90
+ $ headerValue = $ event ->message ->getHeaders ()->get ($ mailClassHeader );
82
91
83
92
if (is_null ($ headerValue )) {
84
93
return null ;
85
94
}
86
95
96
+ /** @phpstan-var string */
87
97
return decrypt ($ headerValue ->getBodyAsString ());
88
98
}
89
99
@@ -93,6 +103,7 @@ protected function getMailClassHeaderValue(MessageSent $event): ?string
93
103
protected function attachModelsToSendModel (MessageSent $ event , Send $ send ): void
94
104
{
95
105
$ this ->getModels ($ event )
106
+ /** @phpstan-ignore-next-line */
96
107
->each (fn (HasSends $ model ) => $ model ->sends ()->attach ($ send ));
97
108
}
98
109
@@ -101,25 +112,35 @@ protected function attachModelsToSendModel(MessageSent $event, Send $send): void
101
112
*/
102
113
protected function getModels (MessageSent $ event ): Collection
103
114
{
104
- if (! $ event ->message ->getHeaders ()->has (config ('sends.headers.models ' ))) {
115
+ /** @var string $modelsHeader */
116
+ $ modelsHeader = config ('sends.headers.models ' );
117
+
118
+ if (! $ event ->message ->getHeaders ()->has ($ modelsHeader )) {
105
119
return collect ([]);
106
120
}
107
121
108
- $ headerValue = $ event ->message ->getHeaders ()->get (config ( ' sends.headers.models ' ) );
122
+ $ headerValue = $ event ->message ->getHeaders ()->get ($ modelsHeader );
109
123
110
124
if (is_null ($ headerValue )) {
111
125
return collect ([]);
112
126
}
113
127
128
+ /** @var string $models */
114
129
$ models = decrypt ($ headerValue ->getBodyAsString ());
115
130
116
- return collect (json_decode ($ models , true , 512 , JSON_THROW_ON_ERROR ))
117
- ->map (function (array $ tuple ): Model {
131
+ /** @var array<array<string, mixed>> $modelsArray */
132
+ $ modelsArray = json_decode ($ models , true , 512 , JSON_THROW_ON_ERROR );
133
+
134
+ return collect ($ modelsArray )
135
+ ->map (function (array $ tuple ): ?Model {
136
+ /** @var Model $model */
118
137
$ model = $ tuple ['model ' ];
119
138
$ id = $ tuple ['id ' ];
120
139
140
+ /** @phpstan-var ?Model */
121
141
return $ model ::find ($ id );
122
142
})
143
+ ->filter ()
123
144
->filter (fn (Model $ model ) => (new ReflectionClass ($ model ))->implementsInterface (HasSends::class));
124
145
}
125
146
@@ -129,6 +150,7 @@ protected function getContent(MessageSent $event): ?string
129
150
return null ;
130
151
}
131
152
153
+ /** @phpstan-ignore-next-line */
132
154
return $ event ->message ->getHtmlBody ();
133
155
}
134
156
0 commit comments