Basic user management
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
<?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() {
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
<?php
|
||||
|
||||
namespace App\Domains\MessageSystem\Actions\SendMessage;
|
||||
|
||||
use App\Enumerations\MessageType;
|
||||
use App\Models\User;
|
||||
use App\ValueObjects\EmailAddress;
|
||||
use App\ValueObjects\MessageRecipient;
|
||||
|
||||
class SendMessageRequest {
|
||||
public string $message;
|
||||
public string $subject;
|
||||
|
||||
public MessageRecipient $recipient;
|
||||
|
||||
/** @var MessageType[] */
|
||||
public array $messageTypes;
|
||||
|
||||
public function __construct(
|
||||
string $message,
|
||||
string $subject,
|
||||
MessageRecipient $recipient,
|
||||
array $messageTypes
|
||||
) {
|
||||
$this->message = $message;
|
||||
$this->recipient = $recipient;
|
||||
$this->subject = $subject;
|
||||
$this->messageTypes = $messageTypes;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
<?php
|
||||
|
||||
namespace App\Domains\MessageSystem\Actions\SendMessage;
|
||||
|
||||
class SendMessageResponse {
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user