add events + more wip classes
This commit is contained in:
@ -2,11 +2,51 @@
|
||||
namespace Da\User\Service;
|
||||
|
||||
use Da\User\Contracts\ServiceInterface;
|
||||
use yii\swiftmailer\Mailer;
|
||||
use Yii;
|
||||
|
||||
class MailService implements ServiceInterface
|
||||
{
|
||||
protected $viewPath = '@Da/User/resources/views/mail';
|
||||
|
||||
protected $from;
|
||||
protected $to;
|
||||
protected $subject;
|
||||
protected $view;
|
||||
protected $params = [];
|
||||
protected $mailer;
|
||||
|
||||
/**
|
||||
* MailService constructor.
|
||||
*
|
||||
* @param string $from
|
||||
* @param string $to
|
||||
* @param string $subject
|
||||
* @param string $view
|
||||
* @param array $params
|
||||
* @param Mailer $mailer
|
||||
*/
|
||||
public function __construct($from, $to, $subject, $view, array $params, Mailer $mailer)
|
||||
{
|
||||
$this->from = $from;
|
||||
$this->to = $to;
|
||||
$this->subject = $subject;
|
||||
$this->view = $view;
|
||||
$this->params = $params;
|
||||
$this->mailer = $mailer;
|
||||
$this->mailer->setViewPath($this->viewPath);
|
||||
$this->mailer->getView()->theme = Yii::$app->view->theme;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return bool
|
||||
*/
|
||||
public function run()
|
||||
{
|
||||
// TODO: Implement run() method.
|
||||
return $this->mailer->compose(['html' => $this->view, 'text' => "text/{$this->view}"], $this->params)
|
||||
->setFrom($this->from)
|
||||
->setTo($this->to)
|
||||
->setSubject($this->subject)
|
||||
->send();
|
||||
}
|
||||
}
|
||||
|
||||
@ -6,25 +6,20 @@ use Da\User\Helper\SecurityHelper;
|
||||
use Da\User\Model\User;
|
||||
use yii\base\InvalidCallException;
|
||||
use Exception;
|
||||
use yii\db\ActiveRecord;
|
||||
use yii\log\Logger;
|
||||
|
||||
/**
|
||||
*
|
||||
* UserCreateService.php
|
||||
*
|
||||
* Date: 4/12/16
|
||||
* Time: 2:55
|
||||
* @author Antonio Ramirez <hola@2amigos.us>
|
||||
*/
|
||||
class UserCreateService implements ServiceInterface
|
||||
{
|
||||
protected $model;
|
||||
protected $securityHelper;
|
||||
protected $mailService;
|
||||
protected $logger;
|
||||
|
||||
public function __construct(User $model, SecurityHelper $securityHelper, Logger $logger)
|
||||
public function __construct(User $model, MailService $mailService, SecurityHelper $securityHelper, Logger $logger)
|
||||
{
|
||||
$this->model = $model;
|
||||
$this->mailService = $mailService;
|
||||
$this->securityHelper = $securityHelper;
|
||||
$this->logger = $logger;
|
||||
}
|
||||
@ -48,7 +43,7 @@ class UserCreateService implements ServiceInterface
|
||||
? $model->password
|
||||
: $this->securityHelper->generatePassword(8);
|
||||
|
||||
// TODO: Trigger BEFORE CREATE EVENT
|
||||
$model->trigger(ActiveRecord::EVENT_BEFORE_INSERT);
|
||||
|
||||
if (!$model->save()) {
|
||||
$transaction->rollBack();
|
||||
@ -56,8 +51,9 @@ class UserCreateService implements ServiceInterface
|
||||
return false;
|
||||
}
|
||||
|
||||
// TODO: Send welcome message
|
||||
$model->trigger(ActiveRecord::EVENT_AFTER_INSERT);
|
||||
|
||||
$this->mailService->run();
|
||||
$transaction->commit();
|
||||
|
||||
return true;
|
||||
|
||||
Reference in New Issue
Block a user