Skip to content

Commit 21b5051

Browse files
committed
[Notifier] Add from in SmsMessage and support it in bridge transports
1 parent e54dd38 commit 21b5051

File tree

77 files changed

+398
-41
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

77 files changed

+398
-41
lines changed

src/Symfony/Component/Notifier/Bridge/AllMySms/AllMySmsTransport.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,11 +61,13 @@ protected function doSend(MessageInterface $message): SentMessage
6161
throw new UnsupportedMessageTypeException(__CLASS__, SmsMessage::class, $message);
6262
}
6363

64+
$from = $message->getFrom() ?: $this->from;
65+
6466
$endpoint = sprintf('https://%s/sms/send/', $this->getEndpoint());
6567
$response = $this->client->request('POST', $endpoint, [
6668
'auth_basic' => $this->login.':'.$this->apiKey,
6769
'json' => [
68-
'from' => $this->from,
70+
'from' => $from,
6971
'to' => $message->getPhone(),
7072
'text' => $message->getSubject(),
7173
],

src/Symfony/Component/Notifier/Bridge/AllMySms/CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
11
CHANGELOG
22
=========
33

4+
6.2
5+
---
6+
7+
* Use `SmsMessage->from` when defined
8+
49
5.3
510
---
611

src/Symfony/Component/Notifier/Bridge/AmazonSns/AmazonSnsTransport.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
namespace Symfony\Component\Notifier\Bridge\AmazonSns;
1313

1414
use AsyncAws\Sns\SnsClient;
15+
use Symfony\Component\Notifier\Exception\InvalidArgumentException;
1516
use Symfony\Component\Notifier\Exception\TransportException;
1617
use Symfony\Component\Notifier\Exception\UnsupportedMessageTypeException;
1718
use Symfony\Component\Notifier\Message\ChatMessage;
@@ -53,6 +54,10 @@ protected function doSend(MessageInterface $message): SentMessage
5354
throw new UnsupportedMessageTypeException(__CLASS__, sprintf('"%s" or "%s"', SmsMessage::class, ChatMessage::class), $message);
5455
}
5556

57+
if ($message instanceof SmsMessage && '' !== $message->getFrom()) {
58+
throw new InvalidArgumentException(sprintf('The "%s" transport does not support "from" in "%s".', __CLASS__, SmsMessage::class));
59+
}
60+
5661
if ($message instanceof ChatMessage && $message->getOptions() instanceof AmazonSnsOptions) {
5762
$options = $message->getOptions()->toArray();
5863
}

src/Symfony/Component/Notifier/Bridge/AmazonSns/CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
11
CHANGELOG
22
=========
33

4+
6.2
5+
---
6+
7+
* Throw exception when `SmsMessage->from` defined
8+
49
5.4
510
---
611

src/Symfony/Component/Notifier/Bridge/AmazonSns/Tests/AmazonSnsTransportTest.php

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
use AsyncAws\Sns\SnsClient;
1616
use Symfony\Component\Notifier\Bridge\AmazonSns\AmazonSnsOptions;
1717
use Symfony\Component\Notifier\Bridge\AmazonSns\AmazonSnsTransport;
18+
use Symfony\Component\Notifier\Exception\InvalidArgumentException;
1819
use Symfony\Component\Notifier\Message\ChatMessage;
1920
use Symfony\Component\Notifier\Message\MessageInterface;
2021
use Symfony\Component\Notifier\Message\MessageOptionsInterface;
@@ -46,6 +47,16 @@ public function unsupportedMessagesProvider(): iterable
4647
yield [new ChatMessage('hello', $this->createMock(MessageOptionsInterface::class))];
4748
}
4849

50+
public function testSmsMessageWithFrom()
51+
{
52+
$transport = $this->createTransport();
53+
54+
$this->expectException(InvalidArgumentException::class);
55+
$this->expectExceptionMessage('The "Symfony\Component\Notifier\Bridge\AmazonSns\AmazonSnsTransport" transport does not support "from" in "Symfony\Component\Notifier\Message\SmsMessage".');
56+
57+
$transport->send(new SmsMessage('0600000000', 'test', 'foo'));
58+
}
59+
4960
public function testSmsMessageOptions()
5061
{
5162
$response = $this->createMock(PublishResponse::class);

src/Symfony/Component/Notifier/Bridge/Clickatell/CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
11
CHANGELOG
22
=========
33

4+
6.2
5+
---
6+
7+
* Use `SmsMessage->from` when defined
8+
49
5.3
510
---
611

src/Symfony/Component/Notifier/Bridge/Clickatell/ClickatellTransport.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,8 @@ protected function doSend(MessageInterface $message): SentMessage
6161

6262
$endpoint = sprintf('https://%s/rest/message', $this->getEndpoint());
6363

64+
$from = $message->getFrom() ?: $this->from;
65+
6466
$response = $this->client->request('POST', $endpoint, [
6567
'headers' => [
6668
'Accept' => 'application/json',
@@ -69,7 +71,7 @@ protected function doSend(MessageInterface $message): SentMessage
6971
'X-Version' => 1,
7072
],
7173
'json' => [
72-
'from' => $this->from ?? '',
74+
'from' => $from ?? '',
7375
'to' => [$message->getPhone()],
7476
'text' => $message->getSubject(),
7577
],

src/Symfony/Component/Notifier/Bridge/ContactEveryone/CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,4 @@ CHANGELOG
55
---
66

77
* Add the bridge
8+
* Throw exception when `SmsMessage->from` defined

src/Symfony/Component/Notifier/Bridge/ContactEveryone/ContactEveryoneTransport.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111

1212
namespace Symfony\Component\Notifier\Bridge\ContactEveryone;
1313

14+
use Symfony\Component\Notifier\Exception\InvalidArgumentException;
1415
use Symfony\Component\Notifier\Exception\TransportException;
1516
use Symfony\Component\Notifier\Exception\UnsupportedMessageTypeException;
1617
use Symfony\Component\Notifier\Message\MessageInterface;
@@ -67,6 +68,10 @@ protected function doSend(MessageInterface $message): SentMessage
6768
throw new UnsupportedMessageTypeException(__CLASS__, SmsMessage::class, $message);
6869
}
6970

71+
if ('' !== $message->getFrom()) {
72+
throw new InvalidArgumentException(sprintf('The "%s" transport does not support "from" in "%s".', __CLASS__, SmsMessage::class));
73+
}
74+
7075
$endpoint = sprintf('https://%s/api/light/diffusions/sms', self::HOST);
7176
$response = $this->client->request('POST', $endpoint, [
7277
'query' => [

src/Symfony/Component/Notifier/Bridge/ContactEveryone/Tests/ContactEveryoneTransportTest.php

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313

1414
use Symfony\Component\HttpClient\MockHttpClient;
1515
use Symfony\Component\Notifier\Bridge\ContactEveryone\ContactEveryoneTransport;
16+
use Symfony\Component\Notifier\Exception\InvalidArgumentException;
1617
use Symfony\Component\Notifier\Message\ChatMessage;
1718
use Symfony\Component\Notifier\Message\MessageInterface;
1819
use Symfony\Component\Notifier\Message\SmsMessage;
@@ -60,4 +61,14 @@ public function testSendSuccessfully()
6061

6162
$this->assertSame($messageId, $sentMessage->getMessageId());
6263
}
64+
65+
public function testSmsMessageWithFrom()
66+
{
67+
$transport = $this->createTransport();
68+
69+
$this->expectException(InvalidArgumentException::class);
70+
$this->expectExceptionMessage('The "Symfony\Component\Notifier\Bridge\ContactEveryone\ContactEveryoneTransport" transport does not support "from" in "Symfony\Component\Notifier\Message\SmsMessage".');
71+
72+
$transport->send(new SmsMessage('0600000000', 'test', 'foo'));
73+
}
6374
}

0 commit comments

Comments
 (0)