提交
This commit is contained in:
parent
cb8f67ad9b
commit
c6dab6b2a5
|
@ -31,7 +31,7 @@ class ConfigProvider
|
|||
'publish' => [
|
||||
[
|
||||
'id' => 'config',
|
||||
'description' => 'The config for hyperf-ext/sms.',
|
||||
'description' => 'The config for zyimm/sms.',
|
||||
'source' => __DIR__ . '/../publish/sms.php',
|
||||
'destination' => BASE_PATH . '/config/autoload/sms.php',
|
||||
],
|
||||
|
|
|
@ -1,13 +1,7 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
/**
|
||||
* This file is part of hyperf-ext/sms.
|
||||
*
|
||||
* @link https://github.com/hyperf-ext/sms
|
||||
* @contact eric@zhu.email
|
||||
* @license https://github.com/hyperf-ext/sms/blob/master/LICENSE
|
||||
*/
|
||||
|
||||
namespace Zyimm\Sms\Events;
|
||||
|
||||
use Zyimm\Sms\Contracts\SmsableInterface;
|
||||
|
@ -19,7 +13,7 @@ class SmsMessageSending
|
|||
*
|
||||
* @var SmsableInterface
|
||||
*/
|
||||
public $smsable;
|
||||
public SmsableInterface $smsable;
|
||||
|
||||
/**
|
||||
* Create a new event instance.
|
||||
|
|
|
@ -13,7 +13,7 @@ class StrategicallySendMessageException extends RuntimeException
|
|||
|
||||
public function __construct($message, Throwable $throwable)
|
||||
{
|
||||
parent::__construct($message, 0);
|
||||
parent::__construct($message, $throwable->getCode());
|
||||
|
||||
$this->appendStack($throwable);
|
||||
}
|
||||
|
|
|
@ -8,31 +8,37 @@ declare(strict_types=1);
|
|||
* @contact eric@zhu.email
|
||||
* @license https://github.com/hyperf-ext/sms/blob/master/LICENSE
|
||||
*/
|
||||
|
||||
namespace Zyimm\Sms;
|
||||
|
||||
use Hyperf\Utils\ApplicationContext;
|
||||
use Zyimm\Sms\Contract\HasMobileNumber;
|
||||
use HyperfExt\Contract\HasMobileNumber;
|
||||
use Psr\Container\ContainerExceptionInterface;
|
||||
use Psr\Container\NotFoundExceptionInterface;
|
||||
use Zyimm\Sms\Contracts\MobileNumberInterface;
|
||||
use Zyimm\Sms\Contracts\SenderInterface;
|
||||
use Zyimm\Sms\Contracts\SmsableInterface;
|
||||
use Zyimm\Sms\Contracts\SmsManagerInterface;
|
||||
use Zyimm\Sms\Exceptions\InvalidMobileNumberException;
|
||||
|
||||
class PendingSms
|
||||
{
|
||||
/**
|
||||
* The "to" recipient of the message.
|
||||
*
|
||||
* @var \Zyimm\Sms\Contracts\MobileNumberInterface
|
||||
* @var MobileNumberInterface
|
||||
*/
|
||||
protected $to;
|
||||
protected MobileNumberInterface $to;
|
||||
|
||||
/**
|
||||
* @var \Zyimm\Sms\Contracts\SmsManagerInterface
|
||||
* @var SmsManagerInterface
|
||||
*/
|
||||
protected $manger;
|
||||
protected SmsManagerInterface $manger;
|
||||
|
||||
/**
|
||||
* @var \Zyimm\Sms\Contracts\SenderInterface
|
||||
* @var SenderInterface
|
||||
*/
|
||||
protected $sender;
|
||||
protected SenderInterface $sender;
|
||||
|
||||
public function __construct(SmsManagerInterface $manger)
|
||||
{
|
||||
|
@ -42,13 +48,13 @@ class PendingSms
|
|||
/**
|
||||
* Set the recipients of the message.
|
||||
*
|
||||
* @param \Zyimm\Sms\Contract\HasMobileNumber|string $number
|
||||
* @param null|int|string $defaultRegion
|
||||
* @param HasMobileNumber|string $number
|
||||
* @param null|int|string $defaultRegion
|
||||
*
|
||||
* @throws \Zyimm\Sms\Exceptions\InvalidMobileNumberException
|
||||
* @return $this
|
||||
* @throws InvalidMobileNumberException
|
||||
*/
|
||||
public function to($number, $defaultRegion = null)
|
||||
public function to($number, $defaultRegion = null): PendingSms
|
||||
{
|
||||
$number = $number instanceof HasMobileNumber ? $number->getMobileNumber() : $number;
|
||||
|
||||
|
@ -60,9 +66,12 @@ class PendingSms
|
|||
/**
|
||||
* Set the sender of the SMS message.
|
||||
*
|
||||
* @param string $name
|
||||
* @return $this
|
||||
* @throws ContainerExceptionInterface
|
||||
* @throws NotFoundExceptionInterface
|
||||
*/
|
||||
public function sender(string $name)
|
||||
public function sender(string $name): PendingSms
|
||||
{
|
||||
$this->sender = ApplicationContext::getContainer()->get(SmsManagerInterface::class)->get($name);
|
||||
|
||||
|
@ -77,6 +86,18 @@ class PendingSms
|
|||
return $this->manger->sendNow($this->fill($smsable));
|
||||
}
|
||||
|
||||
/**
|
||||
* Populate the SMS message with the addresses.
|
||||
*/
|
||||
protected function fill(SmsableInterface $smsable): SmsableInterface
|
||||
{
|
||||
$smsable->to($this->to);
|
||||
if ($this->sender) {
|
||||
$smsable->sender($this->sender->getName());
|
||||
}
|
||||
return $smsable;
|
||||
}
|
||||
|
||||
/**
|
||||
* Send a new SMS message instance.
|
||||
*
|
||||
|
@ -102,16 +123,4 @@ class PendingSms
|
|||
{
|
||||
return $this->manger->later($this->fill($smsable), $delay, $queue);
|
||||
}
|
||||
|
||||
/**
|
||||
* Populate the SMS message with the addresses.
|
||||
*/
|
||||
protected function fill(SmsableInterface $smsable): SmsableInterface
|
||||
{
|
||||
$smsable->to($this->to);
|
||||
if ($this->sender) {
|
||||
$smsable->sender($this->sender->getName());
|
||||
}
|
||||
return $smsable;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -16,9 +16,9 @@ use Zyimm\Sms\Contracts\SmsableInterface;
|
|||
class QueuedSmsableJob extends Job
|
||||
{
|
||||
/**
|
||||
* @var \Zyimm\Sms\Contracts\SmsableInterface
|
||||
* @var SmsableInterface
|
||||
*/
|
||||
public $smsable;
|
||||
public SmsableInterface $smsable;
|
||||
|
||||
public function __construct(SmsableInterface $smsable)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue
Block a user