Files
mareike/app/Domains/MessageSystem/Actions/SendMessage/SendMessageCommand.php
2026-02-05 00:46:22 +01:00

46 lines
1.3 KiB
PHP

<?php
namespace App\Domains\MessageSystem\Actions\SendMessage;
use App\Enumerations\MessageType;
use Illuminate\Support\Facades\Mail;
class SendMessageCommand {
private SendMessageRequest $request;
public function __construct(SendMessageRequest $request) {
$this->request = $request;
}
public function send() : SendMessageResponse {
$response = new SendMessageResponse();
foreach ($this->request->messageTypes as $messageType) {
switch (true) {
case $messageType->value === MessageType::EMAIL->value:
$this->sendAsEmail();
break;
case $messageType->value === MessageType::INTERNAL->value:
$this->sendAsInternalMessage();
break;
}
}
return $response;
}
private function sendAsEmail() {
foreach ($this->request->recipient->getEmailAddresses() as $emailAddress) {
Mail::html($this->request->message, function ($message) use ($emailAddress) {
$message
->to($emailAddress->getValue(), $this->request->recipient->getName())
->subject($this->request->subject);
});
}
}
private function sendAsInternalMessage() {
}
}