Skip to content
Snippets Groups Projects
SendService.php 1.58 KiB
Newer Older
i.vasilenko@iq-adv.ru's avatar
i.vasilenko@iq-adv.ru committed
<?php

namespace App\Service\Send;

use App\Messenger\Message\SendMessage;
use Symfony\Component\Messenger\MessageBusInterface;
use Throwable;

class SendService
{
    public ?string $from = null;
    public ?string $to = null;
    public ?string $subject = null;
    public ?string $body = null;

    public function __construct(
        private string $confirmType,
        private string $fromEmail,
        private readonly MessageBusInterface $bus
    )
    {
    }

    public function getFrom(): ?string
    {
        return $this->from;
    }

    public function setFrom(?string $from): self
    {
        $this->from = $from;

        return $this;
    }

    public function getTo(): ?string
    {
        return $this->to;
    }

    public function setTo(?string $to): self
    {
        $this->to = $to;

        return $this;
    }

    public function getSubject(): ?string
    {
        return $this->subject;
    }

    public function setSubject(?string $subject): self
    {
        $this->subject = $subject;

        return $this;
    }

    public function getBody(): ?string
    {
        return $this->body;
    }

    public function setBody(?string $body): self
    {
        $this->body = $body;

        return $this;
    }

    public function send(): void
    {
        try {
            $this->bus->dispatch(new SendMessage(
                $this->from ?: $this->fromEmail,
                $this->to,
                $this->subject,
                $this->body,
                $this->confirmType
            ));
        } catch (Throwable $e) {
            dd($e);
        }
    }
}