Skip to content

Commit f2e2be8

Browse files
committed
[Notifier] Add from in SmsMessage and support it in bridge transports
1 parent 1f514f9 commit f2e2be8

File tree

72 files changed

+382
-40
lines changed

Some content is hidden

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

72 files changed

+382
-40
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.1
5+
---
6+
7+
* Use `SmsMessage->from` when is defined
8+
49
5.3
510
---
611

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

Lines changed: 6 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;
@@ -56,6 +57,11 @@ protected function doSend(MessageInterface $message): SentMessage
5657
if ($message instanceof ChatMessage && $message->getOptions() instanceof AmazonSnsOptions) {
5758
$options = $message->getOptions()->toArray();
5859
}
60+
61+
if ($message instanceof SmsMessage && null !== $message->getFrom()) {
62+
throw new InvalidArgumentException(sprintf('The "%s" transport does not support "from" in "%s".', __CLASS__, SmsMessage::class));
63+
}
64+
5965
$options['Message'] = $message->getSubject();
6066
$options[($message instanceof ChatMessage) ? 'TopicArn' : 'PhoneNumber'] = $message->getRecipientId();
6167

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.1
5+
---
6+
7+
* Throw exception when `SmsMessage->from` is 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;
@@ -68,6 +69,16 @@ public function testSmsMessageOptions()
6869
$transport->send(new SmsMessage('0600000000', 'test'));
6970
}
7071

72+
public function testSmsMessageWithFrom()
73+
{
74+
$transport = $this->createTransport();
75+
76+
$this->expectException(InvalidArgumentException::class);
77+
$this->expectExceptionMessage('The "Symfony\Component\Notifier\Bridge\AmazonSns\AmazonSnsTransport" transport does not support "from" in "Symfony\Component\Notifier\Message\SmsMessage".');
78+
79+
$transport->send(new SmsMessage('0600000000', 'test', 'foo'));
80+
}
81+
7182
public function testChatMessageOptions()
7283
{
7384
$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.1
5+
---
6+
7+
* Use `SmsMessage->from` when is 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/Engagespot/EngagespotTransportFactory.php

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
use Symfony\Component\Notifier\Exception\UnsupportedSchemeException;
1515
use Symfony\Component\Notifier\Transport\AbstractTransportFactory;
1616
use Symfony\Component\Notifier\Transport\Dsn;
17-
use Symfony\Component\Notifier\Transport\TransportInterface;
1817

1918
/**
2019
* @author Daniel GORGAN <https://github.com/danut007ro>

src/Symfony/Component/Notifier/Bridge/Esendex/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.1
5+
---
6+
7+
* Use `SmsMessage->from` when is defined
8+
49
5.4
510
---
611

src/Symfony/Component/Notifier/Bridge/Esendex/EsendexTransport.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,9 @@ protected function doSend(MessageInterface $message): SentMessage
6363
'body' => $message->getSubject(),
6464
];
6565

66-
if (null !== $this->from) {
66+
if (null !== $message->getFrom()) {
67+
$messageData['from'] = $message->getFrom();
68+
} elseif (null !== $this->from) {
6769
$messageData['from'] = $this->from;
6870
}
6971

src/Symfony/Component/Notifier/Bridge/FakeSms/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.1
5+
---
6+
7+
* Use `SmsMessage->from` when is defined
8+
49
5.4
510
---
611

src/Symfony/Component/Notifier/Bridge/FakeSms/FakeSmsEmailTransport.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,8 +64,10 @@ protected function doSend(MessageInterface $message): SentMessage
6464
throw new UnsupportedMessageTypeException(__CLASS__, SmsMessage::class, $message);
6565
}
6666

67+
$from = $message->getFrom() ?? $this->from;
68+
6769
$email = (new Email())
68-
->from($this->from)
70+
->from($from)
6971
->to($this->to)
7072
->subject(sprintf('New SMS on phone number: %s', $message->getPhone()))
7173
->html($message->getSubject())

src/Symfony/Component/Notifier/Bridge/FortySixElks/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+
* Use `SmsMessage->from` when is defined

src/Symfony/Component/Notifier/Bridge/FortySixElks/FortySixElksTransport.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,10 +57,12 @@ protected function doSend(MessageInterface $message): SentMessage
5757
throw new UnsupportedMessageTypeException(__CLASS__, SmsMessage::class, $message);
5858
}
5959

60+
$from = $message->getFrom() ?? $this->from;
61+
6062
$endpoint = sprintf('https://%s/a1/sms', self::HOST);
6163
$response = $this->client->request('POST', $endpoint, [
6264
'body' => [
63-
'from' => $this->from,
65+
'from' => $from,
6466
'to' => $message->getPhone(),
6567
'message' => $message->getSubject(),
6668
],

src/Symfony/Component/Notifier/Bridge/FreeMobile/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.1
5+
---
6+
7+
* Throw exception when `SmsMessage->from` is defined
8+
49
5.3
510
---
611

src/Symfony/Component/Notifier/Bridge/FreeMobile/FreeMobileTransport.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\FreeMobile;
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;
@@ -57,6 +58,10 @@ protected function doSend(MessageInterface $message): SentMessage
5758
throw new UnsupportedMessageTypeException(__CLASS__, SmsMessage::class, $message);
5859
}
5960

61+
if (null !== $message->getFrom()) {
62+
throw new InvalidArgumentException(sprintf('The "%s" transport does not support "from" in "%s".', __CLASS__, SmsMessage::class));
63+
}
64+
6065
$endpoint = sprintf('https://%s', $this->getEndpoint());
6166

6267
$response = $this->client->request('POST', $endpoint, [

src/Symfony/Component/Notifier/Bridge/FreeMobile/Tests/FreeMobileTransportTest.php

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

1414
use Symfony\Component\Notifier\Bridge\FreeMobile\FreeMobileTransport;
15+
use Symfony\Component\Notifier\Exception\InvalidArgumentException;
1516
use Symfony\Component\Notifier\Message\ChatMessage;
1617
use Symfony\Component\Notifier\Message\MessageInterface;
1718
use Symfony\Component\Notifier\Message\SmsMessage;
@@ -42,4 +43,14 @@ public function unsupportedMessagesProvider(): iterable
4243
yield [new ChatMessage('Hello!')];
4344
yield [$this->createMock(MessageInterface::class)];
4445
}
46+
47+
public function testSmsMessageWithFrom()
48+
{
49+
$transport = $this->createTransport();
50+
51+
$this->expectException(InvalidArgumentException::class);
52+
$this->expectExceptionMessage('The "Symfony\Component\Notifier\Bridge\FreeMobile\FreeMobileTransport" transport does not support "from" in "Symfony\Component\Notifier\Message\SmsMessage".');
53+
54+
$transport->send(new SmsMessage('+33611223344', 'test', 'foo'));
55+
}
4556
}

src/Symfony/Component/Notifier/Bridge/GatewayApi/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.1
5+
---
6+
7+
* Use `SmsMessage->from` when is defined
8+
49
5.3
510
---
611

src/Symfony/Component/Notifier/Bridge/GatewayApi/GatewayApiTransport.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,12 +55,14 @@ protected function doSend(MessageInterface $message): SentMessage
5555
throw new UnsupportedMessageTypeException(__CLASS__, SmsMessage::class, $message);
5656
}
5757

58+
$from = $message->getFrom() ?? $this->from;
59+
5860
$endpoint = sprintf('https://%s/rest/mtsms', $this->getEndpoint());
5961

6062
$response = $this->client->request('POST', $endpoint, [
6163
'auth_basic' => [$this->authToken, ''],
6264
'json' => [
63-
'sender' => $this->from,
65+
'sender' => $from,
6466
'recipients' => [['msisdn' => $message->getPhone()]],
6567
'message' => $message->getSubject(),
6668
],

src/Symfony/Component/Notifier/Bridge/Infobip/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.1
5+
---
6+
7+
* Use `SmsMessage->from` when is defined
8+
49
5.3
510
---
611

src/Symfony/Component/Notifier/Bridge/Infobip/InfobipTransport.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,8 @@ protected function doSend(MessageInterface $message): SentMessage
5454
throw new UnsupportedMessageTypeException(__CLASS__, SmsMessage::class, $message);
5555
}
5656

57+
$from = $message->getFrom() ?? $this->from;
58+
5759
$endpoint = sprintf('https://%s/sms/2/text/advanced', $this->getEndpoint());
5860

5961
$response = $this->client->request('POST', $endpoint, [
@@ -63,7 +65,7 @@ protected function doSend(MessageInterface $message): SentMessage
6365
'json' => [
6466
'messages' => [
6567
[
66-
'from' => $this->from,
68+
'from' => $from,
6769
'destinations' => [
6870
[
6971
'to' => $message->getPhone(),

src/Symfony/Component/Notifier/Bridge/Iqsms/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.1
5+
---
6+
7+
* Use `SmsMessage->from` when is defined
8+
49
5.3
510
---
611

src/Symfony/Component/Notifier/Bridge/Iqsms/IqsmsTransport.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,13 +57,15 @@ protected function doSend(MessageInterface $message): SentMessage
5757
throw new UnsupportedMessageTypeException(__CLASS__, SmsMessage::class, $message);
5858
}
5959

60+
$from = $message->getFrom() ?? $this->from;
61+
6062
$response = $this->client->request('POST', 'https://'.$this->getEndpoint().'/messages/v2/send.json', [
6163
'json' => [
6264
'messages' => [
6365
[
6466
'phone' => $message->getPhone(),
6567
'text' => $message->getSubject(),
66-
'sender' => $this->from,
68+
'sender' => $from,
6769
'clientId' => uniqid(),
6870
],
6971
],

src/Symfony/Component/Notifier/Bridge/KazInfoTeh/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+
* Use `SmsMessage->from` when is defined

src/Symfony/Component/Notifier/Bridge/KazInfoTeh/KazInfoTehTransport.php

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

63+
$originator = $message->getFrom() ?? $this->sender;
64+
6365
$endpoint = sprintf('http://%s/api', $this->getEndpoint());
6466
$response = $this->client->request('POST', $endpoint, [
6567
'query' => [
@@ -68,7 +70,7 @@ protected function doSend(MessageInterface $message): SentMessage
6870
'password' => $this->password,
6971
'recipient' => $message->getPhone(),
7072
'messagetype' => 'SMS:TEXT',
71-
'originator' => $this->sender,
73+
'originator' => $originator,
7274
'messagedata' => $message->getSubject(),
7375
],
7476
]);

src/Symfony/Component/Notifier/Bridge/LightSms/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.1
5+
---
6+
7+
* Use `SmsMessage->from` when is defined
8+
49
5.3
510
---
611

src/Symfony/Component/Notifier/Bridge/LightSms/LightSmsTransport.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,10 +100,12 @@ protected function doSend(MessageInterface $message): SentMessage
100100
throw new UnsupportedMessageTypeException(__CLASS__, SmsMessage::class, $message);
101101
}
102102

103+
$from = $message->getFrom() ?? $this->from;
104+
103105
$data = [
104106
'login' => $this->login,
105107
'phone' => $phone = $this->escapePhoneNumber($message->getPhone()),
106-
'sender' => $this->from,
108+
'sender' => $from,
107109
'text' => $message->getSubject(),
108110
'timestamp' => time(),
109111
];

src/Symfony/Component/Notifier/Bridge/Mailjet/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.1
5+
---
6+
7+
* Use `SmsMessage->from` when is defined
8+
49
5.4
510
---
611

0 commit comments

Comments
 (0)